Intereting Posts
Удалить исходное изображение – сохранить миниатюру? Крюк при редактировании пользователя Использовать js-скрипт из одного плагина в другом плагине Изображение не отображается с использованием пользовательской функции и get_post_meta Многодольные субдомены WordPress и совместное использование одной и той же папки для загрузки Добавление ссылки комментария в начало каждого сообщения Восстановить несколько сообщений до более старой версии? Как изменить расположение wp-config.php в папку или 2 папки вверх? как искать все пользовательские метаданные, имеющие значение типа «vivek» Как добавлять эскизы к сообщениям и страницам автоматически в форматированном элегантном элегантном стиле? Тип пользовательского сообщения WordPress 3.3 с /% postname% / permastruct? Yoast SEO плагин – ссылки Sitemap greyed out и приоритет страницы Установить условия для нескольких сообщений Buddypress создает пользовательскую вкладку в моем профиле и добавляет на домашнюю страницу Автоматическое увеличение кармы комментариев в комментариях

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

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

Существует множество способов создания пользовательских шаблонов сообщений для отдельных сообщений в 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.

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

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