0

キーワードによる検索と、WP_query の meta_key および meta_value フィルターを組み合わせようとしています。キーワード検索とメタ フィルターは、単独ではうまく機能しますが、併用するとうまくいきません。それを成し遂げる方法は?ありがとう!

これが私のコードです:

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);
4

1 に答える 1

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);
    }
}
?>

これにより、すべての検索が変更されることに注意してください。特定の 1 つの検索のみを変更する場合は、特定のクエリを変更する前に、条件を変更して特定のページにいることを確認できます。

また、meta_key と meta_value だけでなく、meta_query の使用を検討することもできます。

すべてに関する情報:

投稿前の取得
メタ クエリのカスタム フィールド パラメータ
検索クエリの取得

于 2013-01-23T01:10:19.013 に答える