Intereting Posts
Как я могу убедиться, что мой плагин работает только на страницах подробностей статьи? Как запустить подрывную и промежуточную среды при запуске WordPress Получить определенный цвет от цветовой схемы администратора Настройка параметров по умолчанию на новых сайтах на многоузловом Ошибка при обновлении плагинов по FTP «Невозможно найти каталог содержимого WordPress (wp-content)». is_page () и is_page_template () не дифференцируется Мне нужно показывать сообщения от клиента (Shortcode) Получить мета из пользовательского поля URL-адреса изображения WordPress Image Editor не обновляет большие пальцы, заданные с помощью `add_image_size ()` Как переключаться между двумя формами для посетителей после входа в систему? Не дублируйте сообщения с несколькими категориями в нескольких циклах Автоматическое добавление категорий и авторов в пользовательское меню? Функция excludeCat отменяет порядок сообщений в блоге Добавление возможностей к ролям по умолчанию Пользовательский родительский шаблон Post Post как элемент меню

Правильный способ использования get_template_part () и get_post_format () с пользовательскими типами сообщений?

У меня есть настраиваемый тип «соревнований». Чтобы настроить отображение этого CPT в, например, в списках категорий, я делаю следующее:

  • Создайте файл category-competitions.php contest.php
  • Создайте файл content-competitions.php
  • Внутри цикла в этом файле вызовите get_template_part('content-competitions', get_post_format() )'

Это работает, но я не уверен, что это правильный метод. Нужно ли включать весь файл category-competitions.php contest.php для изменения этой одной строки или есть встроенный способ достижения этого, которого я не вижу?

Solutions Collecting From Web of "Правильный способ использования get_template_part () и get_post_format () с пользовательскими типами сообщений?"

То, что вы сделали, будет включать content-competitions-<post-format>.php . Я не знаю, хочет ли это того, чего вы хотите, но это верно, насколько это касается структуры.

Я также не знаю, что вы подразумеваете под «изменить одну строку», но get_template_part будет использовать эти два параметра для создания имени файла / пути, поэтому да, вам нужно включить все это. Взгляните на объяснение в Codex :

 <?php get_template_part( 'loop', 'index' ); ?> 

будет выполнять PHP require() для первого файла, который существует среди них, в этом приоритете:

  wp-content/themes/twentytenchild/loop-index.php wp-content/themes/twentyten/loop-index.php wp-content/themes/twentytenchild/loop.php wp-content/themes/twentyten/loop.php 

Что вы получаете с get_template_part

  1. «имя дочерней или родительской темы», сначала одно другое
  2. плюс "первый параметр"
  3. Плюс "-"
  4. плюс "второй параметр"
  5. плюс ".php"

Или …

  1. «имя дочерней или родительской темы», сначала одно другое
  2. плюс "первый параметр"
  3. плюс ".php"

… если ничего не найдено, имея второй параметр.

Нет ярлыка. WordPress не может угадать, какой файл вы хотите включить.

Если вы могли бы назвать свои файлы чем-то вроде postformat.php вы могли бы избежать использования только первого параметра:

 get_template_part( get_post_format() ); 

Я не знаю, возможно ли это, поскольку этот файл post-format.php будет использоваться для любого сообщения, имеющего этот формат почтового сообщения.