Intereting Posts
Разработка плагинов, перехваты, создание контента Как остановить повторное заполнение формы на странице обновления Lazy Load с использованием разбиения на страницы WP_Query Получить сообщение со ссылкой Загрузите шаблон страницы с помощью настраиваемого содержимого с помощью плагина после того, как wp_insert_post нужно получить идентификатор сообщения Запросить текущие и будущие события, упорядоченные по дате начала Как перенаправить пользовательский архив типа сообщения на первый термин связанной таксономии? Контактная форма ACF + 7 Плагин: относительный URL-адрес изображений в другой папке, доступ к которой осуществляется в JS-файле Прикрепленная навигация и wpadminbar Пустой / Белый экран на Frontend, но доступный бэкэнд? Как определить WP_DEBUG как true вне wp-config.php? Обработка пользовательских форм в WP .. правильным способом? Плагин для проведения аукционов на вашем сайте

Шаблоны пользовательских сообщений

Проблема. Я ищу настраиваемые шаблоны отдельных сообщений, чтобы добавлять или удалять отдельные элементы в зависимости от обычной отдельной записи.

Существует множество способов создания пользовательских шаблонов сообщений для отдельных сообщений в WordPress. Особенно форматы сообщений – отличная возможность использовать шаблоны по умолчанию для случаев по умолчанию; однако мне нужны реальные пользовательские шаблоны для каждого сообщения.

Идея: Мой первый подход заключался в том, чтобы добавить оператор if / else в соответствии с идентификатором сообщения:

// check if custom post if ( is_single('999') ) // check if there is a custom post template file if ( file_exists(TEMPLATEPATH . '/single-999.php' ) // use custom post template return TEMPLATEPATH . '/single-999.php'; // use normal post template for everything else include(TEMPLATEPATH . '/single.php'); 

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

 add_filter( 'single_template', function( $template ) { // check if there is a custom post template file if ( file_exists(TEMPLATEPATH . '/single-' . $GLOBALS['post']->ID . '.php') ) // use custom post template return TEMPLATEPATH . '/single-' . $GLOBALS['post']->ID . '.php'; // use normal post template for everything else return $template; }); 

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

Больше мыслей: я бы предпочел добавить динамические разделы внутри шаблона single.php , чтобы подключиться к пользовательским single.php / фильтрам?

Вопрос: Есть ли другой (более эксклюзивный) подход для получения таких пользовательских шаблонов сообщений?

Обновление. Во многих из этих особых случаев мне нужно добавить некоторые дополнительные стили таблицы или JavaScripts, а также настраиваемый контейнер с HTML, а также PHP-контент (вот почему я попытался сделать это с помощью настраиваемых шаблонов вместо настраиваемых полей). В большинстве случаев дополнительные элементы находятся выше, ниже или рядом the_content() .

Solutions Collecting From Web of "Шаблоны пользовательских сообщений"

Я думаю, что этот подход будет работать.

1.Создайте шаблон для отдельной записи, такой как singlepost.php (шаблон по умолчанию для одного сообщения), singlepost-99.php , singlepost-101.php .

2.Выберите этот код только в single.php

 <?php global $post; get_template_part('singlepost',$post->ID); ?> 

что этот код проверяет для одного шаблона сообщения для текущего сообщения по сообщению id, если не найден вызов singlepost.php .

Важная ссылка :

get_template_part ()

Это, наконец, возможно с WordPress 4.4 (как было объявлено в Make WordPress Core ).

Иерархия шаблонов WordPress теперь позволяет создавать отдельные настраиваемые шаблоны сообщений с таким шаблоном имен:

 single-{post_type}-{post_name}.php 

Цитируя от Джона Блэкборна, шаблоны следуют этим правилам:

Этот шаблон следует правилам is_single() и используется для одного сообщения или настраиваемого типа сообщения. […] Он входит в иерархию до single.php и single-{post_type}.php .

Чтобы сделать его образцом, вы должны добавить комментарий:

 <?php /* Template Name: Page, two columns */ get_header(); ?> 

Независимо от имени, которое вы назначили в комментарии –

может быть выбран в качестве шаблона в боковой панели WP-admin.

Таким образом, вы не получите сотни разных шаблонов.

Я имею в виду, даже если вышеупомянутое решение работает – нужно учитывать обслуживание.