Можно ли сделать фильтр поиска в Wordpress, чтобы он давал только статьи из блога, а не из woocommerce? - PullRequest
0 голосов
/ 30 мая 2019

При использовании панели поиска на странице «Новости» моего Wordpress, он отображает сообщения из блога, а также сообщения, которые являются продуктами от Woocommerce или других страниц / контента. Я бы хотел, чтобы отображались только сообщения в блоге.

Я еще не нашел решения. Кроме того, Wordpress не позволяет мне обновлять php-файлы темы, поэтому я думаю, что мне нужны локальные настройки / плагины.

Вот страница новостей: https://champagne -oudart.com / actualites / Клиент хотел, чтобы категории новостей были годами.

Ответы [ 2 ]

1 голос
/ 30 мая 2019

Я рекомендую использовать плагин, такой как Relevanssi https://wordpress.org/plugins/relevanssi/

Он позволяет вам ограничивать / контролировать поиск разными способами, в том числе и тем, который вы просили, и с ним очень просто работать.

0 голосов
/ 30 мая 2019

function modify_search_query( $query ) {
    // Make sure this isn't the admin or is the main query
    if( is_admin() || ! $query->is_main_query() ) {
      return;
    }
  
    // Make sure this isn't the WooCommerce product search form
    if( isset($_GET['post_type']) && ($_GET['post_type'] == 'product') ) {
      return;
    }
  
    if( $query->is_search() ) {
      $in_search_post_types = get_post_types( array( 'exclude_from_search' => false ) );
  
      // The post types you're removing (example: 'product' and 'page')
      $post_types_to_remove = array( 'product', 'page' );
  
      foreach( $post_types_to_remove as $post_type_to_remove ) {
        if( is_array( $in_search_post_types ) && in_array( $post_type_to_remove, $in_search_post_types ) ) {
          unset( $in_search_post_types[ $post_type_to_remove ] );
          $query->set( 'post_type', $in_search_post_types );
        }
      }
    }
  
  }
  add_action( 'pre_get_posts', 'modify_search_query' );

добавьте эти строки в ваши функции. Php

...