Вопрос или проблема
Я использую блочный редактор кода, чтобы получить больше результатов на странице, регулируя настройки perPage и title. Однако он, похоже, не реагирует на мои новые настройки:
<!-- wp:query {"queryId":73,"query":{"perPage":100,"pages":1,"offset":"0","postType":"spice","order":"asc","orderBy":"title","author":"","search":"","exclude":[],"sticky":"","inherit":true,"parents":[],"format":[]},"align":"wide","layout":{"type":"default"}} -->
Например, я знаю, что у меня есть 30 записей пользовательских постов на слово “yellow”, когда я ищу непосредственно в зоне wp-admin. Однако, когда я выполняю поиск на опубликованном сайте, результаты отображают только 10 записей, и они также не сортируются по заголовку.
Есть ли какие-то нюансы, которые я должен знать о новом блочном редакторе, которые могут приводить к таким результатам?
В настройках запроса блока установлено "inherit":true
. Это означает, что остальная часть параметров игнорируется, и вместо этого используется глобальный запрос.
Вы можете рассмотреть возможность установки inherit
в false
или использовать фильтр-хуки для изменения запроса по мере необходимости, например, pre_get_posts
.
Ответ или решение
Когда сталкиваетесь с такой проблемой в WordPress при использовании блокового редактора, важно учесть несколько ключевых моментов для настройки запроса wp:query, чтобы изменения параметров, таких как perPage и orderBy, начали работать корректно.
Фундаментальная проблема
Основной причиной, из-за которой ваши параметры wp:query (например, perPage и orderBy) не оказывают ожидаемого эффекта, является настройка "inherit":true
. Этот параметр указывает WordPress использовать глобальный запрос, который может переопределять все актуальные настройки вашего кастомного запроса.
Рекомендации
-
Измените Параметр
inherit
:
Чтобы ваша конфигурация работала, как ожидается, замените"inherit":true
на"inherit":false
. Это позволит вашему кастомному запросу использовать указанные вами параметры вместо глобального.<!-- wp:query {"queryId":73,"query":{"perPage":100,"pages":1,"offset":"0","postType":"spice","order":"asc","orderBy":"title","author":"","search":"","exclude":[],"sticky":"","inherit":false,"parents":[],"format":[]},"align":"wide","layout":{"type":"default"}} -->
-
Используйте Хуки и Фильтры:
Если необходимо сделать более сложные изменения запроса или обеспечить гибкость фильтрации, вы можете использовать хуки, например,pre_get_posts
. Этот хук позволяет вмешиваться в запрос до того, как его выполнение начнется:function modify_query_parameters( $query ) { if ( ! is_admin() && $query->is_main_query() ) { if ( is_search() || is_post_type_archive('spice') ) { $query->set( 'posts_per_page', 100 ); $query->set( 'orderby', 'title' ); $query->set( 'order', 'ASC' ); } } } add_action( 'pre_get_posts', 'modify_query_parameters' );
Возможные Ощутимые Результаты
- Кастомизация: Установив
"inherit":false
, ваш сайт будет использовать указанные прямо параметры, что обеспечит корректный вывод всех 30 постов с сортировкой по названию. - Контроль: Использование
pre_get_posts
позволяет вам получать полный контроль над запросами на сайте, добавляя гибкость и возможности персонализации.
Учитывая данные аспекты и предлагаемые решения, вы сможете избежать проблем с некорректной обработкой поисковых запросов на сайте WordPress и обеспечить более оптимальное соответствие выдачи вашим замыслам. Если вопросы остаются открытыми, проведите тщательный анализ ваших установленных параметров и логики или обратитесь к профессионалам для поддержки.