Intereting Posts
Добавление дополнительных страниц на страницы авторов Различные меню на странице категорий использовать многозначное значение в мета-ключевом запросе получить идентификатор страницы – не получить страницы? Не работает wpdb-запрос Найти и заменить доменное имя на лету? Как предотвратить загрузку внешних ресурсов WordPress при разработке Использование лицензированного MIT лицензированного niftyPlayer в WordPress Hosted Plugin (Premium и бесплатные версии) Buddypress: удалить вкладку форума на странице профиля пользователя? Редактор содержимого, создающий пустые абзацы в пространствах и создающий в файле_excerpt Metabox не отображается на пользовательском типе сообщений, но на страницах и сообщениях WP Job Manager Пользовательская постоянная ссылка Возвращает 404 Ошибки Как отображать липкую почту с пользовательским html Удаление изображений через папку загрузки, но не удаление из медиа-библиотеки Как включить подкаталог в файл Sitemap?

Различные шаблоны для постов всех подкатегорий категории

Я хочу использовать другой шаблон для сообщений всей подкатегории одной категории. Ниже приведен код, который я использую:

add_filter( 'single_template', 'get_custom_cat_template' ) ; function get_custom_cat_template( $single_template ) { global $post; if ( is_category( 'blog' ) || in_category( 'blog' ) ) { $single_template = dirname( __FILE__ ) . '/single-blog.php'; } return $single_template; } 

Здесь «блог» – это категория. Этот код работает только для родительской категории (блога). Для сообщений подкатегории загружается файл по умолчанию single.php .

Как я могу изменить код, чтобы он работал для всех подкатегорий родительской категории?

Solutions Collecting From Web of "Различные шаблоны для постов всех подкатегорий категории"

Вы можете проверить, является ли текущая категория дочерним элементом категории блога с cat_is_ancestor_of() или term_is_ancestor_of() , или, может быть, лучше, используйте in_category() , как вы сейчас это делаете, но также проверяете дочерние категории.

 add_filter( 'single_template', 'get_custom_cat_template' ) ; function get_custom_cat_template( $single_template ) { // You want to filter only template for single posts of default post type if( is_singular( 'post' ) ) { $post = get_queried_object(); // Replace '3' with the ID of the 'blog' category $child_blog_categories = get_term_children( '3', 'category' ); if ( in_category( 'blog', $post ) || in_category( $child_blog_categories, $post ) ) { $single_template = locate_template( 'single-blog.php' ); } } return $single_template; } 

Во всяком случае, я думаю, что если вы видите, что создаете категорию сообщений для управления сообщениями в этой категории по-другому, вы можете проверить типы пользовательских сообщений.