Intereting Posts
function.php ввод строки css wp_kses vs wp_strip_all_tags Вызов ссылки следующей категории на странице архива – WordPress Как настроить страницу архива типа персонализированного типа как Главная страница вызов функции jquery на странице плагина Ошибка «Поле пароля пуста» при использовании автозаполнения в Chrome Измените цикл, но сохраните исходный запрос, что я делаю неправильно? Где я могу создать свою собственную функцию в wp-admin Проверить is_single () вне цикла Какова хорошая стратегия для планирования роста WordPress DB? Неустранимая ошибка: невозможно обновить comment_theme () Как предотвратить дублирование сообщений с помощью wp_insert_post на single.php? Панель инструментов редактора сообщений WordPress отсутствует В какой таблице базы данных содержатся «Избранные изображения»? Убедитесь, что пользователь WordPress зарегистрирован в другом приложении, так как wordpress 4.0

Правильный способ использования 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 будет использоваться для любого сообщения, имеющего этот формат почтового сообщения.