按标签或类别搜索记录,而在Wordpress中没有插件

问题描述 投票:0回答:1

我正在使用按内容和标题进行工作的WordPress搜索。现在,我必须按标签或类别搜索产品。

那么有什么办法可以解决这个问题?

下面是我在search.php上使用的代码

<section id="primary" class="content-area mainSearch">
    <main id="main" class="site-main">
      <div class="equalPadding">
        <div class="cp-seeWrapper">
    <?php 
          if ( have_posts() ) : 
          get_search_form();//search form
          ?>
         <div class="row">
      <?php 

       while (have_posts()){ the_post();?>
     <div class="col-xl-4 col-lg-4 col-md-4 col-sm-12 col-xs-12 ">
        <div class="cp-shadow cp-seeSinglePostWrapper">
        <?php the_post_thumbnail();?>
          <div class="bg-white single-post-box">
          <div class="d-flex cp-CategoryList">
           <div class="seeDate"><?php echo get_the_date('F j, Y'); ?></div>
            <div class="cp_cat_list">
              <?php $cat = get_the_category();?>
              <a href="<?php echo esc_url( get_category_link( $cat[0]->term_id ) );?>"><?php echo $cat[0]->cat_name?></a><?php ?>
            </div>
          </div>
            <div class="cp-b-content"><h2><a href="<?php the_permalink(); ?>" title="<?php echo esc_attr( the_title_attribute( 'echo=0' ) ); ?>"><?php echo wp_trim_words(get_the_title(), 12, '...'); ?></a></h2></div>
            <p><?php echo wp_trim_words(get_the_excerpt(), 25, '...'); ?></p>
        </div>
        </div>
        </div>
       <?php } ?>

      <?php

      //the_posts_navigation();

    else :
      get_template_part( 'template-parts/content', 'none' );

    endif;
    ?>
          </div>
    </div>
    </div>
    </main><!-- #main -->
  </section><!-- #primary -->

function.php

此功能不包括具有ID并从'post', 'page', 'product'中搜索的页面

add_action( 'pre_get_posts', 'my_search_exclude' );
function my_search_exclude( $query ) {
  if ( ! $query->is_admin && $query->is_search && $query->is_main_query() ) {
    $query->set( 'post_type', array( 'post', 'page', 'product' ) );
    $query->set( 'post__not_in', array( 11 ) );
  }
}
php wordpress search tags categories
1个回答
-1
投票

对于标签或类别,您可以执行以下代码

$args = array(
    'tax_query' => array(
       'relation' => 'OR',
        array(
            'taxonomy' => 'product_tag',
            'field' => 'slug',
            'terms' => 'search value'
        ),
        array(
            'taxonomy' => 'product_cat',
            'field' => 'slug',
            'terms' => 'search value'
        )
    ),
    'post_type' => 'product'
);

$products= get_posts( $args );
© www.soinside.com 2019 - 2024. All rights reserved.