Я хотел бы использовать архив пользовательских типов записей в качестве главной страницы сайта, чтобы
http://the_site.com/
архив пользовательских типов записей, отображаемый в соответствии с моим archive-{post-type}.php
файлом
В идеале я хотел бы изменить запрос, используя is_front_page()
в моем functions.php
файле. Я попробовал следующее, со страницей под названием «Домой» в качестве моей главной страницы:
add_filter('pre_get_posts', 'my_get_posts');
function my_get_posts($query){
global $wp_the_query;
if(is_front_page()&&$wp_the_query===$query){
$query->set('post_type','album');
$query->set('posts_per_page',-1);
}
return $query;
}
но первая страница возвращает содержимое «Home» и, похоже, игнорирует пользовательский запрос.
Что я делаю неправильно? Есть ли вообще лучший способ сделать это?
Ответы:
После того, как вы установили статическую страницу в качестве домашней страницы, вы можете добавить ее к себе,
functions.php
и все готово . Это будетarchive-POSTTYPE.php
правильно вызывать шаблон.источник
if(is_admin()) return;
в самом начале, иначе она портится из админки.Переименуйте свой архив CPT в home.php
Затем используйте pre_get_posts, чтобы изменить запрос домашней страницы, чтобы отображался только CPT
Замените your-cpt именем вашего пользовательского типа сообщения.
источник
Спасибо за ответ ljaas - я искал решение именно этой проблемы. Для того, чтобы получить шаблон архива с настраиваемым типом записи, мне нужно было добавить следующие условия:
источник
Это работает лучше для меня, переопределяя как сообщения в блоге, так и статическую страницу в Настройки> Чтение> Отображение главной страницы:
Я использую его в сочетании с переопределением шаблона с использованием фильтров
front_page_template
иhome_template
для возврата пользовательского шаблона.источник
Для меня это нарушает нумерацию страниц: либо вы выбираете индекс или статическую страницу в качестве домашней страницы, появляются ссылки на нумерацию страниц, но при нажатии на страницу 2 я получаю:
Я думаю, что нужны некоторые правила переписывания, чтобы перехватить аргумент и передать его правильно.
В любом случае, пользовательская страница шаблона должна быть решением с некоторыми дополнительными правилами переписывания.
источник