小编Swa*_*226的帖子

如何使用主where子句条件设置带有OR条件的meta_query

我创建了一个名为 的元键_custom_product_catalog_number,我想添加功能,以便人们可以使用该目录号搜索产品。

我在functions.php中添加了以下代码

add_action('pre_get_posts', 'modify_post_search');
function modify_post_search($query) 
{
if($query->is_search)
{
$s="c2500";//$s=$_GET['s'];
    $query->set('meta_query', [
        [
            'key' => '_custom_product_catalog_number',
            'value' => $s,
            'compare' => '='
        ]
    ]);
}
}

add_filter('pre_get_posts', 'filter_search');
Run Code Online (Sandbox Code Playgroud)

生成的查询:

SELECT SQL_CALC_FOUND_ROWS  dsl_posts.ID 
FROM dsl_posts  
   INNER JOIN dsl_postmeta ON ( dsl_posts.ID = dsl_postmeta.post_id )
WHERE 1=1  
AND ( dsl_posts.ID NOT IN (
      SELECT object_id FROM dsl_term_relationships WHERE term_taxonomy_id IN (6) 
) ) 
AND (((dsl_posts.post_title LIKE '%c2500%') OR (dsl_posts.post_excerpt LIKE '%c2500%') OR (dsl_posts.post_content LIKE '%c2500%')))  

AND ( /* replace …
Run Code Online (Sandbox Code Playgroud)

wordpress woocommerce

5
推荐指数
1
解决办法
2017
查看次数

标签 统计

woocommerce ×1

wordpress ×1