Intereting Posts
tinyMCE дублирует предыдущий элемент блока при нажатии return (визуальный редактор) Пользовательский шаблон страницы в warp7 (шаблон Yootheme) preg_replace () Без конечного разделителя '.' найдено Как запрашивать сообщения с определенными метаданными и выводить данные У меня есть рабочий стол и ноутбук. Каков наилучший способ перемещения между локальными установками? Использование previous_post_link и next_post_link для округления последовательности сообщений Как добавить изображение поверх логотипа заголовка в тему для детей? Как добавить параметры CSS в мой плагин без использования встроенных стилей? Как манипулировать всплывающим окном «добавить медиа» Предотвратить вывод gui-администратора из страницы с помощью add_submenu_page the_post_thumbnail () ничего не возвращает, хотя has_post_thumbnail () возвращает true Как отредактировать макет определенного почтового формата? Плагин регистрации – интеграция Recaptcha Как заставить внутренние привязные ссылки работать с постоянными ссылками WordPress? После обновления WordPress 4.8, wp_nav_menu () строка поиска / замены не работает

Вызов другой страницы архива на основе типа сообщения

Хорошо, у меня довольно много CPT в моем последнем проекте. Большинство CPT используются только для отображения содержимого метабокса, связанного с pdf-файлами, и т. Д. Я огляделся и не мог найти то, что искал, но думал, что смогу настроить функцию, которая вызывает стандартный шаблон archive.php, если сообщение type – это «сообщения», и если бы он не мог вызвать файл archive-cpt.php.

Если кто-то видел что-то подобное или установил что-то подобное, и не хотел бы делиться своим кодом, это было бы оценено.

Взгляните на раздел иерархии шаблонов Codex, который относится к типам пользовательских сообщений .

  1. archive- {post_type} .php. Если тип сообщения был продуктом, WordPress будет искать archive-product.php.
  2. archive.php
  3. index.php

То, что вы описываете, встроено, вплоть до archive-cpt.php именования файлов – archive-cpt.php

Для загрузки одного и того же шаблона для всех архивов CPT используйте:

 function not_post_archive_wpse_107931($template) { if (is_post_type_archive()) { $template = get_stylesheet_directory().'/archive-cpt.php'; } return $template; } add_filter('template_include','not_post_archive_wpse_107931'); 

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

Протестировано. Возможно, глючит. Пусть покупатель будет бдителен. Без возвратов.