Использовать массив как $cat1 в cat_is_ancestor_of

Мой category.php использует wp_list_categories для отображения подкатегорий для определенных категорий, а также для отображения родственных категорий для этих подкатегорий. Конкретные подкатегории определены в следующей строке:

if ($this_category && ((cat_is_ancestor_of(258, $cat) or is_category(258)) || (cat_is_ancestor_of(252, $cat) or is_category(252)) || (cat_is_ancestor_of(238, $cat) or is_category(238)) ) ) { ?>  

Я хотел бы заменить это на массив для более легкого обслуживания при изменении соответствующих категорий. Я написал следующее:

<?php $subCat = array(258, 252, 238);?>
if ($this_category && (cat_is_ancestor_of($subCat, $cat) or is_category($subCat) ) ) { ?> 

Это работает на страницах родительской категории, но не на страницах подкатегории. В подкатегориях братья и сестры не отображаются.

Может ли cat_is_ancestor_of использовать массив для первой переменной?

1 ответ

Вы должны перебрать свой массив. Попробуй это:

<?php 
$subCat = array(258, 252, 238);
$sub_str    = array();
foreach($subCat as $sub){
$sub_str[]    = '(cat_is_ancestor_of($sub, $cat) or is_category($sub))';
}
$qry    = implode($sub_str,'||');
if ($this_category && ($qry) ) { 
// do something
}
?> 
Другие вопросы по тегам