Отдельный шаблон single.php для записей (post), но прикрепленных к другой таксономии
На сайте есть таксономия, ко всем рубрикам которой я хочу применить свой single.php?
Помогите! Как это можно реализовать?
Нашел в интернете такой вариант, но как его сделать под свою taxonomy? Спасибо.
<?php
$post = $wp_query->post;
if ( in_category('3') ) {
include(TEMPLATEPATH . '/single2.php');
} else {
include(TEMPLATEPATH . '/single1.php');
}
?>Вот подход который вам поможет - третий вариант
Для условия юзай in_category('3') должно сработать...
Выходит так?
<?php
add_filter('template_include', 'my_template');
function my_template( $template ) {
if( is_tax('tests') ){
return get_stylesheet_directory() . '/single2.php';
}
return $template;
}
?> Не понял что нужно, создать шаблон для записей из определенной рубрики или для элементов таксономии (которые содержат записи)...
У меня создана taxonomy с названием tests, в которой есть 9 элементов=9 рубрик, а в этих рубриках записи, которые я хочу выводить другим шаблоном single.php
Если тип записи отличается, то все просто очень, создаешь файл single-{myposttype}.php в корне темы, готово!
Если тип записи post (базовые записи), то нужно хакать. Код выше должен работать...
В этом вся сложность... Что типа записи не создавалось. Таксономия привязана к обычному - post. Код срабатывает, но не так как мне нужно. Он меняет шаблон taxonomy-{slug}.php на single2.php, а не шаблон записи - single.php.
<?php
add_filter('template_include', 'my_template');
function my_template( $template ) {
if( is_tax('tests') ){
return get_stylesheet_directory() . '/single2.php';
}
return $template;
}
?> Тебе в условие нужно добавить проверку если мы на странице записи и запись прикреплена к элементу таксономии tests.
add_filter('template_include', 'my_template');
function my_template( $template ) {
global $post;
if( is_single() && get_the_terms( $post, 'tests') ){
return get_stylesheet_directory() . '/single2.php';
}
return $template;
}
Посмотрите has_term, мне помогло.