Wordpress поиск в пользовательском типе поста без плагина - PullRequest
0 голосов
/ 09 апреля 2020

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

У меня есть код, который создает поисковый запрос, но WordPress по-прежнему возвращает сообщения и объявления о работе.

<form method="get" id="searchform" action="<?php echo esc_url( home_url( '/' ) ); ?>" role="search">
    <label class="sr-only" for="s"><?php esc_html_e( 'Search', 'understrap' ); ?></label>
    <div class="input-group">
      <input class="field form-control" id="s" name="s" type="search"
        placeholder="<?php esc_attr_e( 'Otsi &hellip;', 'job-ads' ); ?>" value="<?php the_search_query(); ?>">
      <input type="hidden" name="post_type" value="job-ads">
    </div>
  </div>
  <div class="col-md-3">
    <div class="input-group">
      <?php wp_dropdown_categories( array(
          'show_option_all' => __('All job ads', 'job-ads'),
          'taxonomy' => 'tookategooria',
          'name' => 'category',
          'orderby' => 'name',
          'echo' => 1,
          'selected' => $cat,
          'hierarchical' => true,
          'class'   => 'cat-dropdown',
          'id'  => 'custom-cat-drop',
          'value_field' => 'term_id'
        ) ); ?>  
    </div>
  </div>
  <div class="col">
    <span class="input-group-append">
      <input class="submit btn" id="searchsubmit" name="submit" type="submit"
      value="<?php esc_attr_e( 'Search', 'understrap' ); ?>">
    </span>
    </form>

Мой пользовательский тип записи зарегистрирован также без плагина, общедоступные и другие параметры были проверены.

Если я использую строку поиска вручную, она все равно возвращает все сообщения

Строка www.domain.com/?s=&post_type=job-ads&category=323

Она также не будет работать без категории.

Для результатов поиска я использую шаблон, который отображает l oop, как в результатах поиска по собственной теме Worpress. В основном весь код построен на одной основе.

Есть идеи, как заставить WordPress корректно отображать результаты поиска?

1 Ответ

0 голосов
/ 09 апреля 2020

Добавьте следующий код в ваши функции. php

function my_pre_get_posts($query) {

if( is_admin() ) 
    return;

if( is_search() && $query->is_main_query() ) {
    $query->set('post_type', 'custom-post-type-name');
} 

}

add_action( 'pre_get_posts', 'my_pre_get_posts' );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...