Использовать массив как $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
}
?>