Lizard-108
@Lizard-108
Ящерица

Как сделать шаблон записи не-костыльным способом в Wordpress?

Поясняю суть вопроса.

В WP существует нативный метод создания шаблонов, например, для категорий. Работает это таким образом - имеется категория которая имеет название, например, services. И далее мы просто создаем шаблон category-services.php и в нем работаем.

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

В мануале по WP написано следующее:
single-{post-type}-{slug}.php – (Since 4.4) First, WordPress looks for a template for the specific post. For example, if post type is product and the post slug is dmc-12, WordPress would look for single-product-dmc-12.php.

Ну ок, то есть в моем случае надо создать файл с названием single-post-services.php и типа должно работать. Но оно не работает.

На форумах проблему создания шаблонов для single страниц предлагают решить костыльными методами - через кучу ифок. Но мне такой вариант не нравится. Я бы хотел узнать, возможно ли вообще физически сделать это по-человечески? И если можно, то как? Что я сделал не так?
  • Вопрос задан
  • 219 просмотров
Решения вопроса 1
@mais64
Фронтенд разработчик
WP поддерживает специальные шаблоны постов.

<?php
/*
 * Template Name: Featured Article
 * Template Post Type: post
 */


Подробнее
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
deniscopro
@deniscopro Куратор тега WordPress
WordPress-разработчик, denisco.pro
В дополнение к ответу Александр .
Если захочется автоматизации, то можно задействовать хук template_include
add_filter( 'template_include', 'services_single_template', 99 );

function services_single_template( $template ) {

	if ( is_category( 'services' )  ) {
		$new_template = locate_template( array( 'services-single-template.php' ) );
		if ( '' != $new_template ) {
			return $new_template;
		}
	}

	return $template;
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы