В настройках чтения есть место для установки количества отображаемых сообщений, которое влияет на количество сообщений, отображаемых во всех контекстах. Вместо этого я хотел бы показать определенное количество сообщений на главной странице и другое количество сообщений на страницах, таких как архив, результаты поиска и т. Д.
Я понимаю, что могу сделать это, отредактировав файлы тем и изменив там параметры запроса, но я бы предпочел иметь более легкий доступ к простой странице настроек. Давным-давно я наткнулся на плагин, который сделал это, но я не могу найти его сейчас.
Кто-нибудь знает плагин, чтобы сделать это, или даже функцию, которую я мог бы поместить в functions.php, чтобы выполнить то же самое?
Ответы:
Я полагаю, что лучший способ сделать это в плагине - запустить следующую примерную функцию, когда
pre_get_posts
встречается ловушка действия.$wp_query
Объект доступен, то есть ваши условные теги доступны, но перед WordPress получает сообщения, что означает меняющие запросы вары до первого запроса , который является запуском, а не добавление второго запроса , как при query_posts () используется в теме файл.источник
Вы можете сделать пользовательский цикл, используя query_posts, и указать количество сообщений с помощью is_home, is_archive и т. д.
простой оператор if вместе с query_posts
источник
query_posts
свою тему, вы проигнорируете исходный запрос и создадите другой, лишний.Для добавления к этому вопросу. Кто-нибудь знает, как определить post_per_page для этой функции функции custom_posts_per_page ($ query), если добавить новую страницу в index.php следующим образом:
источник
В интересах полноты я обнаружил, что в
query_posts
сочетании с$query_string
конкатенацией работает хорошо.Я поместил этот код в
index.php
(моя тема не имеет category.php) ...Конечно, здесь мы модифицируем внутреннюю строку запроса цикла, переопределяя количество сообщений по умолчанию на странице .
Это работает для того, чтобы предоставить меньший список постов на главной странице, где я показываю полные посты, и гораздо больший список постов везде (категории, по дате и т. Д.), Где я показываю только итоги постов.
Тем не менее, обратите внимание, что в отличие от принятого ответа, запрос будет выполнен дважды , поэтому это не очень хорошее решение.
источник