WordPress как на ладони

Уникальные шаблоны для разных записей single-{post_type}.php

Приветствую! Для своего сайта сделал произвольный тип записей:

add_action( 'init', 'our_service' );
function our_service(){

	register_post_type( 'our_service', array(
		'public' => true,
		'labels' => array(
			'name'           => 'Услуги JCBS', 
			'all_items'      => 'Все услуги', 
			'add_new'        => 'Добавить новую услугу',
			'add_new_item'   => 'Добавить услугу',
			'featured_image' => 'Изображение',
			'set_featured_image'    => 'Добавить изображение',
			'remove_featured_image' => 'Удалить изображение',
			'use_featured_image'    => 'Использовать изображение'
			),
		'supports'  => array('title', 'editor', 'thumbnail'),
		'menu_icon' => 'dashicons-arrow-right'
	));
};

Далее сделал уникальный шаблон single-{post_type}.php
В моем случае single-our_service.

Однако теперь есть необходимость сделать для каждой страницы услуги (записи) свой уникальный шаблон. То-есть в данный момент необходимо добавить возможность для каждой записи выбирать через админку WordPress свой собственный, заранее подготовленный, шаблон записи для произвольного типа поста. Такое возможно сделать?

0
Андрей
4 года назад
  • 0

    Я знаю такой способ:

    function custom_single_template( $single_template ) {
    	if ( in_category( 'идкатегории' ) ) {
    		$file = get_template_directory() .'/single-our_service.php';
    		if ( file_exists( $file ) ) {
    			return $file;
    		}
    	}
    	return $single_template;
    }
    add_filter( 'single_template', 'custom_single_template' );

    идкатегории - указываете ID рубрики, которую нужно оформить под свой стиль

    После, все записи в этой категории будут иметь свой вывод записи в single-our_service.php

    Автоматического способа через админку не встречал, но при желании можно и такое реализовать, также встречал на гитхабе иерархический класс, разделяющий single-{post_type}.php записи и категории, но сейчас уже не вспомню, как он назывался. Что то типа Template Hierarchy

    Комментировать
  • 0
    el-lable620 el-lable.ru

    https://wp-kama.ru/function/register_post_type#supports
    а именно наверное нужно добавить "page-attributes"
    а потом видимо вот так
    https://wp-kama.ru/id_8577/shablony-stranitsy-dlya-tipov-zapisej-v-wp-4-7.html

    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация