按标签或类别搜索产品无效

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

我正在搜索。我正在尝试按标签或类别搜索产品。我尝试了以下代码,但无法正常工作。我得到

没找到

此外,以下代码仅适用于标题和内容。

您能帮我这个忙吗?

<?php
/**
 * The template for displaying search results pages
 *
 * @link https://developer.wordpress.org/themes/basics/template-hierarchy/#search-result
 *
 * @package CoolPickings
 */

get_header();
?>

    <section id="primary" class="content-area mainSearch">
        <main id="main" class="site-main">
            <div class="equalPadding">
                <div class="cp-seeWrapper">
        <?php 

                    if ( have_posts() ) : 
                    ?>
           <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 //the_category(''); 

                            ?>
                        </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 //endwhile;

            //the_posts_navigation();

        else :

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

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

<?php
get_sidebar();
get_footer();
php wordpress search
1个回答
0
投票

请尝试以下代码。唯一的区别是使用terms作为数组。

$getSearch=get_search_query();
$args = array(
    'tax_query' => array(
       'relation' => 'OR',
        array(
            'taxonomy' => 'product_tag',
            'field' => 'slug',
            'terms' => array($getSearch) // Using the terms as an array
        ),
        array(
            'taxonomy' => 'product_cat',
            'field' => 'slug',
            'terms' => array($getSearch) // Using the terms as an array
        )
    ),
    'post_type' => 'product'
);
$the_query = new WP_Query( $args );

// ... functions.php
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( 's', '' );
    }
}

您可以在这里找到更多信息:https://developer.wordpress.org/reference/classes/wp_query/#taxonomy-parameters

© www.soinside.com 2019 - 2024. All rights reserved.