2

似乎 WooCommerce 产品的搜索功能不检查“product_tag”分类术语,也不检查 SKU 字段?我将 SKU 作为产品标签添加到它们各自的产品中,但是当我搜索 SKU 时它仍然没有返回任何内容......如何使搜索功能检查 product_tag 条款?我已经尝试了很多很多东西,从添加 tax_query 到 pre_get_post 过滤器,到一个全新的 WP_Query 循环,它只是因为某种原因无法搜索 product_tags ......那么产品标签的意义何在?

4

2 回答 2

1

我已经尝试了 woo 和其他人的代码来搜索 SKU,但没有结果。但是,从存储库下载的插件 search-everything 可以完成这项工作。

于 2012-10-23T18:37:18.653 回答
0

我得到了按 SKU 代码搜索产品的解决方案。

太简单了,把下面的代码粘贴到function.php中就可以看到搜索结果的变化了。

function search_by_id_only( $search, &$query_vars ) {
    global $wpdb, $pagenow;

    if ( 'edit.php' == $pagenow || empty($search) ) {
        return $search;
    }

    $args = array(
        'posts_per_page'  => -1,
        'post_type'       => 'product',
        'meta_query' => array(
            array(
                'key' => '_sku',
                'value' => $query_vars->query['s'],
                'compare' => 'LIKE'
            )
        )
    );
    $posts = get_posts( $args );
    if ( empty( $posts ) ) return $search;
    $get_post_ids = array();
    foreach($posts as $post){
        $get_post_ids[] = $post->ID;
    }
    if ( sizeof( $get_post_ids ) > 0 ) {
        $search = str_replace( 'AND (((', "AND ((({$wpdb->posts}.ID IN (" . implode( ',', $get_post_ids ) . ")) OR (", $search);
    }
    return $search;
}
add_filter( 'posts_search', 'search_by_id_only', 999, 2 );
于 2019-07-11T09:06:29.307 回答