Intereting Posts
Добавление настраиваемых типов сообщений в панель управления Доля файлов cookie в WordPress между двумя установками поддоменов «Плагин не может быть активирован, потому что он вызвал фатальную ошибку». Показать все сообщения в категории. Как отображать содержимое из внешнего db с соответствующими URL-адресами Чистая база данных из неиспользуемых таблиц Изменение активного меню на прокрутке Почему этот поиск не работает? Подключение формы комментариев к формам Gravity Показать количество сообщений от зарегистрированных пользователей Как изменить пароль пользователя с помощью wp-cli? Как получить идентификатор пользователя, который выполняется приложением buddypress Измените имя основного файла плагина (в настоящее время в репо) Разрешения для файлов WordPress для редактирования на локальной машине разработки Ubuntu Невозможно упорядочить порядок wp_query с помощью 2 мета ключей

Сделать персонализированный тип сообщений в виде страницы

Я пытаюсь сделать свой пользовательский тип сообщений на лицевой стороне, как если бы это была страница. В зависимости от темы у него не будет даты, автора и т. Д.

Я рассмотрел создание шаблона, такого как «single-<CPT> .php». Но это слишком статично, чтобы работать для любого дизайна темы.

Можно ли каким-то образом указать текущей теме, чтобы отобразить пользовательский тип сообщения так же, как и на обычной странице.

Благодаря!

Solutions Collecting From Web of "Сделать персонализированный тип сообщений в виде страницы"

Существует несколько фильтров шаблонов, которые вы можете использовать для изменения иерархии шаблонов. Посмотрите на страницу иерархии шаблонов в фильтрах и пример.

Вот модифицированная версия примера, использующая single_template . Он проверяет определенный пользовательский тип сообщения и загружает шаблон page.php темы, если он существует:

 function wpa54721_single_template( $templates = '' ){ // get data for the current post and check type $this_post = get_queried_object(); if( 'my_custom_post_type' == $this_post->post_type ): // $templates could be empty, a string, or an array, // we need to check and alter it appropriately if( !is_array( $templates ) && !empty( $templates ) ): // it's a string $templates = locate_template( array( 'page.php', $templates ), false ); elseif( empty( $templates ) ): // it's empty $templates = locate_template( 'page.php', false ); else: // it's an array $new_template = locate_template( array( 'page.php' ) ); if( !empty( $new_template ) ) array_unshift( $templates, $new_template ); endif; endif; return $templates; } add_filter( 'single_template', 'wpa54721_single_template' ); 

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

В принципе, мы хотим, чтобы наши пользовательские типы сообщений имели все те же функции, что и обычная почта или страница. Это означает категории, архивы и т. Д.

Сначала вы должны сделать все свои обычные страницы. Это означает:

  • архив-cpt.php
  • Категории-cpt.php
  • одного cpt.php
  • и т.д..

Теперь, если вы сделали это правильно, перейдя на страницы типа /custom-post-type/page/2/ вы должны увидеть архив и т. Д.

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

Для этого вам нужно создать шаблон страницы . Этот шаблон страницы будет работать как index.php или archive.php, где будет отображаться 10 (или более) сообщений. Когда вы его создали, создайте новую страницу на сайте и установите шаблон страницы в новый шаблон.

После этого перейдите в Настройки -> Чтение и выберите эту страницу в качестве своей главной страницы. Теперь вы должны иметь список последних добавленных пользовательских сообщений.