Задать вопрос
@Denis9999

После редактирования wp_query в pre_get_posts выдает 404 страницу?

Упростил максимально код, и после именно его вместо страницы фильтрации выдает 404-ую:

add_action( 'pre_get_posts', 'action_function_name_11' );
function action_function_name_11( $query ) {
	
	if ( isset($_GET['research_me']) && $query->is_main_query() ) {

	$meta = array(
            array(
            'key' => 'test123',
            'value' => 'text5',
            'compare' => '='
            )
        );
        $query->set('meta_query',$meta );
	
	}
}


Все работает, если закоментировать строку:
$query->set('meta_query',$meta );

То есть если правильно не отредактировать запрос по метаданным, выдает 404-ую страницу. Это как сравнивать теплое с мягким. Может есть идеи из-за чего так происходит?
  • Вопрос задан
  • 35 просмотров
Подписаться 1 Сложный Комментировать
Решения вопроса 1
@Denis9999 Автор вопроса
pre_get_posts никак не влиял на запрос, потому что такая тема, результаты поиска и построение wp_query происходило в шорткоде
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
cesnokov
@cesnokov
<head>&nbsp;</head>
Вы перезаписываете параметры, а их надо добавлять к уже существующим:
add_action( 'pre_get_posts', 'action_function_name_11' );
function action_function_name_11( $query ) {
   if ( isset($_GET['research_me']) && $query->is_main_query() ) {
      $meta = $query->get('meta_query');
      $meta[] = array(
         'key' => 'test123',
         'value' => 'text5',
         'compare' => '='
      );
      $query->set('meta_query', $meta);
   }
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы