wpfts_pre_get_posts (Filter)

Фильтр wpfts_pre_get_posts в WP Fast Total Search вызывается непосредственно перед выполнением основного запроса WP_Query при использовании виджета поиска WPFTS. Это дает разработчикам возможность модифицировать параметры запроса перед тем, как он будет выполнен, что позволяет гибко настраивать поиск в виджете.

Когда используется

Этот фильтр полезен в следующих случаях:

  • Изменение параметров запроса в зависимости от настроек виджета: Вы можете модифицировать параметры запроса, такие как posts_per_page, post_type, post_status и другие, на основе настроек виджета WPFTS.
  • Добавление дополнительных параметров в запрос: Вы можете добавить свои собственные параметры в запрос, которые будут использованы вашим аддоном или темой.
  • Отладка запросов виджета: Вы можете использовать этот фильтр для вывода параметров запроса и отладки вашей интеграции с WPFTS.

Аргументы

  • &$wpq (object): Объект WP_Query, который будет использован для выполнения запроса. Передается по ссылке, поэтому изменения, внесенные в этот объект, будут сохранены.
  • $wdata (array): Массив данных настроек виджета WPFTS. Содержит такие ключи, как title, wpfts_wdgt, placeholder и другие. Позволяет получить доступ к настройкам текущего виджета, чтобы изменить параметры запроса в зависимости от этих настроек.

Возвращаемое значение

  • Фильтр wpfts_pre_get_posts не должен возвращать никакого значения, так как объект WP_Query передаётся по ссылке.

Пример (изменение количества постов на странице)

 
add_filter( 'wpfts_pre_get_posts', 'my_wpfts_pre_get_posts', 10, 2 );
 
function my_wpfts_pre_get_posts( &$wpq, $wdata ) {
    if ( $wdata['id'] == 'my_custom_widget' ) { // проверяем ID виджета
      $wpq->set( 'posts_per_page', 5 ); // устанавливаем количество постов на странице равным 5
    }
  }
 

Важные замечания

  • Фильтр wpfts_pre_get_posts вызывается только при использовании виджета поиска WPFTS.
  • Объект $wpq передается по ссылке, поэтому любые изменения, внесенные в него внутри обработчика фильтра, будут влиять на выполняемый запрос.
  • Будьте осторожны при изменении параметров запроса, так как это может повлиять на работу виджета и плагина в целом.
  • Этот фильтр вызывается после того, как плагин обработал настройки пресета, поэтому вы можете переопределить настройки пресета внутри обработчика этого фильтра.

Фильтр wpfts_pre_get_posts предоставляет разработчикам мощный инструмент для тонкой настройки поисковых запросов, выполняемых через виджет WPFTS.