В Wordpress вы не можете использовать «in_category» вне цикла, поэтому я создал функцию, которая дает мне все категории, в которых находится моя статья, и создает из нее выражение «is_category».
Я поместил свою функцию в свой «functions.php»:
function inCatAlt($catID){
$allCats = get_categories('child_of='.$catID);
$childCats = 'is_category('.$catID.') ';
foreach($allCats as $childCat){
$childCats.= 'or is_category('.$childCat->cat_ID.') ';
};
$allchildCats = trim(trim($childCats, 'or '));
return $allchildCats;
}
и назовите это на моей боковой панели, single и так далее:
echo inCatAlt(13);
который возвращает мне это как строку:
"is_category(13) or is_category(16) or is_category(15)"
Это именно то, что мне нужно, но теперь я хочу оценить строку, чтобы использовать ее в функции if, например:
if(eval(inCatAlt(13))){
do something
}
Но это не работает. Я неправильно оцениваю или в чем проблема? Если я скопирую и вставлю вывод в функцию if, он будет работать нормально...