У меня есть клиент, чей сайт будет активно использовать пользовательские типы сообщений для настройки своего сайта. Но я нахожусь между молотом и наковальней для их запрашиваемой домашней страницы.
В действительности, домашняя страница будет стеком определенных «страниц» в WordPress. В основном, будут страницы для: вступления , блога , о нас , портфолио и контактов . Все они будут накладываться друг на друга, чтобы вы могли перемещаться с одной страницы на другую.
Моим первым инстинктом было просто использовать страницу (называемую « Домой» ) и вставлять шорткод, который принимает слагы страницы и выводит правильный порядок (то есть [pageOrder]intro, blog, about-us, portfolio, contact-us[/pageOrder]
). Страница будет использовать пользовательский шаблон страницы для разметки, управления циклом и добавления навигации в левую часть страницы. Но это все кажется клунки.
Моим идеальным решением было бы создание пользовательского типа записи ( стека ), который позволяет конечному пользователю позиционировать страницы с помощью перетаскивания, а CPT позаботится о компоновке, навигации и т.п.
Проблема с моим идеальным решением - настройки. WordPress позволяет выбрать страницу для домашней страницы сайта по умолчанию. Но это привязанный к сообщению типа страницы , и я не уверен , где крюк , чтобы изменить то , чтобы пользователи могли также выбрать Stack в качестве домашней страницы по умолчанию.
Итак, к чему мне подключиться, чтобы добавить CPT в выпадающий список доступных страниц для домашней страницы по умолчанию?
post_type
оно еще не установлено иpage_id
не равно 0) предотвращает все 404 с. Теперь я могу выполнять запросы для всех своих пользовательских сообщений, всех своих сообщений и всех своих страниц без какого-либо вмешательства.Может быть и так? Уточненная версия моего более раннего решения .
источник
Почему бы просто не создать
front-page.php
файл шаблона, который использует либо обычный запрос / цикл, либо (если для пользовательской опции «Темы» установлено отображение CPT на главной странице), выводит пользовательский запрос / цикл на основе CPT?Проблема в том, что вам придется создать отдельную опцию Theme для управления выводом Front Page, и в то же время инструктировать пользователей для установки Front Page на статическую страницу.
Чтобы упростить задачу, вы можете подключить опцию «Тема» к чтению настроек, используя группу опций «Чтение» при вызове
register_setting
через API настроек, чтобы она отображалась с существующими опциями на передней странице.источник
front-page.php
Выбирается автоматически , поскольку является частью иерархии шаблонов WordPress. Не нужно помнить, почему это происходит (или нужно пометить это для следующего человека).Я думаю, что что-то могло измениться с тех пор, как EAMann написал свое обновление в 2011 году, и функция wpa18013_add_pages_to_dropdown (), которую он предоставляет, больше не работает. Как упоминается в комментарии Dameer, эта функция в настоящее время (декабрь 2013 г.) выдает ошибку «Отсутствует аргумент 2 для wpa18013_add_pages_to_dropdown ()»
В любом случае, для меня решение состояло в том, чтобы переписать функцию без второго параметра или проверить ее содержимое. Полный блок кода становится:
Обратите внимание, что в приведенном выше примере добавляемый мной тип поста «unbox_tabs», а не «stack».
источник
Я использую эту технику, чтобы включить шаблон из плагина. Таким образом, решение @ ChipBennett не применяется.
Чтобы добавить CPT ( ) из плагина в список статических страниц, я изменил решение @ EAMann следующим образом:
'hierarchical' => 'false'
Базовая ссылка v3.4.2:
небольшая разница в номерах строк в 3.5 RC3, но код остается тем же
источник