wp:query не реагирует на новые настройки

Вопрос или проблема

Я использую блочный редактор кода, чтобы получить больше результатов на странице, регулируя настройки 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 использовать глобальный запрос, который может переопределять все актуальные настройки вашего кастомного запроса.

Рекомендации

  1. Измените Параметр 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"}} -->
  2. Используйте Хуки и Фильтры:
    Если необходимо сделать более сложные изменения запроса или обеспечить гибкость фильтрации, вы можете использовать хуки, например, 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 и обеспечить более оптимальное соответствие выдачи вашим замыслам. Если вопросы остаются открытыми, проведите тщательный анализ ваших установленных параметров и логики или обратитесь к профессионалам для поддержки.

Оцените материал
Добавить комментарий

Капча загружается...