Как исключить категорию портфеля

У меня есть тема со страницей портфолио, которая позволяет мне исключить определенные категории портфолио, снимите флажок категории, которые я хотел бы скрыть. (например, кино, искусство)

Проблема состоит в том, что определенные элементы портфеля назначаются нескольким категориям, и моя тема не будет отображать элемент портфолио, если категория не отмечена, но все же назначена категории, которая отмечена (таким образом, несколько категорий).

Как мне исправить это? Я думаю, что нашел код в моем файле функций, но я не уверен.

Я попытался сменить оператора с «НЕ В» на «В», но в итоге все категории были показаны. Любая помощь будет принята с благодарностью!

    if ( isset( $cat ) && $cat!=-1 ) {
//include a category
$query_args['tax_query'] = array(
array(
'taxonomy' => PEXETO_PORTFOLIO_TAXONOMY,
'field' => 'slug',
'terms' => $cat
)
);
}
if ( !empty( $excludeCats ) ) {
if ( !isset( $query_args['tax_query'] ) ) {
$query_args['tax_query'] = array();
}
//exclude categories
$query_args['tax_query'][]= array(
'taxonomy' => PEXETO_PORTFOLIO_TAXONOMY,
'field' => 'id',
'terms' => $excludeCats,
'operator' => 'NOT IN'
);
}

0

Решение

Я предполагаю, что проблема возникает в архиве портфолио.
Если это так, в качестве обходного пути я бы предложил получить все видимые категории и добавить их в tax_query.

if( ! empty( $excludeCats ) ) {
$visibleCats = array_diff( $allCats, $excludeCats );
}
if ( !empty( $excludeCats ) ) {
if ( !isset( $query_args['tax_query'] ) ) {
$query_args['tax_query'] = array();
}
//exclude categories
$query_args['tax_query'][]= array(
'taxonomy' => PEXETO_PORTFOLIO_TAXONOMY,
'field' => 'id',
'terms' => $visibleCats,
'operator' => 'IN'
);
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]