Отдельный шаблон 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, мне помогло.