WordPress WP Query с типом записи, отличным от заданного по умолчанию, не работает - PullRequest
0 голосов
/ 11 мая 2018

Ниже код не работает, когда я ищу, однако, если я удаляю post_type, ниже работает нормально для сообщения по умолчанию. веб-ссылки - это пользовательский тип записи для таксономии weblinks_guidelines

If any thing is search

 <?php if(!empty($_POST['search'])){
    $search_term = $_POST['search'];
 }else{
   $search_term ='';
  }
Arguements for the query
$args = array(
    'post_type' => 'weblinks',
    'posts_per_page' => -1,
    's'=>$search_term
);
$my_query = new WP_Query ($args);
if( $my_query->have_posts() ) :
 while ($my_query->have_posts()) : $my_query->the_post(); 

 endwhile;
endif;
?>

1 Ответ

0 голосов
/ 11 мая 2018

Я предполагаю, что предложения добавлены для нашей пользы, если нет, то они не закомментированы должным образом.Я бы также рассмотрел возможность очистки вашего кода, с непоследовательным отступом будет трудно разобраться позже.

Тем не менее, ваша проблема в том, что вы всегда что-то ищете, учитывая, что клавиша sвсегда включается в массив $args, вам нужно условно добавить весь этот аргумент, а не только его значение.Прямо сейчас это будет либо «ничего не искать», либо «поиск по опубликованному значению 'search'. Мы можем это исправить, вставив аргумент ['s'] в массив $args, используя базовый синтаксис $array['key'] = $value;.

$args = array(
    'post_type' => 'weblinks',
    'posts_per_page' => -1
);

if( !empty( $_POST['search'] ) ){
    $args['s'] = $_POST['search'];
}

$my_query = new WP_Query( $args );
if( $my_query->have_posts() ) :
     while( $my_query->have_posts() ) : $my_query->the_post(); 
         // Post Loop Code Here
     endwhile;
endif;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...