2013-01-22 49 views
0

我想在WP_query中通過關鍵字和meta_key和meta_value過濾器進行搜索。關鍵字搜索和元過濾器獨立運行良好,但一起不是。如何完成它?謝謝!WordPress的:如何在WP_query中結合關鍵字搜索和元過濾器

這裏是我的代碼:

if (isset($_REQUEST['search']) AND $_REQUEST['search']) 
{ 
    $query_param = array('s' => urldecode($_REQUEST['search']), 'post_type' => GOODS_POST_TYPE); 
    $query_param['meta_key'] = 'sku'; 
    $query_param['meta_value'] = urldecode($_REQUEST['search']); 
} 
$query = new WP_Query($query_param); 

回答

1

修改您的查詢的搜索運行前,並使用WordPress的內置功能,你需要什麼,而不是依賴於未過濾的數據:

<?php 
add_action('pre_get_posts', 'modify_goods_search'); 
function modify_goods_search($query) 
{ 
    if($query->is_search) 
    { 
     $query->set('meta_key', 'sku'); 
     $query->set('meta_value', get_search_query()); 
     $query->set('post_type', GOODS_POST_TYPE); 
    } 
} 
?> 

請記住,這將修改所有搜索。如果您只想修改一個特定的搜索,您可以在修改給定的查詢之前修改該條件以確保您在特定頁面上。

您可能還想考慮使用meta_query,而不僅僅是meta_key和meta_value。

上的一切信息:

Pre Get Posts
Custom Field Parameters in Meta Query
Get Search Query

相關問題