здесь сценарий У меня есть 2 (или более) категория и каждый из них имеет 5 (или более) подкатегорииКатегория и подкатегория, в которой должен загружаться один шаблон сообщения?
cat1 - Век (подкатегория: 1) морковь 2) томатных и т.д. cat2 - фрукты (подкатегория: 1) яблоко 2) оранжевый и т.д.
я создал для каждой категории отдельных шаблонов: одно- veg.php, одно- fruit.php ..
Итак, кто-нибудь знает, какой должна быть правильная функция для загрузки одного -veg.php на все должности, которые относятся к подкатегориям: 'veg', 'carrot' etc category?
Это то, что я принял, но я думаю, что должно быть лучше .. и конечно же, если вы заметили что-то неправильно с кодом ... Я новичок любая помощь будет оценена
/** Get Post Category and sub category */
function post_is_in_descendant_category($cats, $_post = null)
{
foreach ((array) $cats as $cat) {
// get_term_children() accepts integer ID only
$descendants = get_term_children((int) $cat, 'category');
if ($descendants && in_category($descendants, $_post))
return true;
}
return false;
}
/** Conditional Templates for Single posts */
function template_change($template){
if(is_single() && (post_is_in_descendant_category('12')) || in_category('12')){
$templates = array("single-veg.php");
}
elseif(is_single() && (post_is_in_descendant_category('17')) || in_category('17')){
$templates = array("single-fruit.php");
} elseif(is_single() && in_category('articles')){
$templates = array("single-articles.php");
}
$template = locate_template($templates);
return $template;
}
add_filter('single_template', 'template_change'); //'template_include'/'single_template'
спасибо !! Я попробую оба метода. И я прав, он будет работать и для подкатегорий? – kriskl
Да, он должен работать и для подкатегорий. –
Привет, это не сработало :(Может быть, я делаю что-то неправильно, но я лучше проверяю, это ваш код для одного шаблона сообщения? Или пользовательский шаблон типа post? Я использую только один шаблон на данный момент, снова спасибо за вашу поддержку Может ли проблема заключаться в том, что я использую дочернюю тему (рамки генезиса)? – kriskl