34

解決済み: 以下の回答を参照してください。


BOOKSというカスタム投稿タイプがあります。、、、、という名前TITLEのカスタム フィールドがいくつかありAUTHORます。以下のコードを修正して、カスタム フィールドに検索語, , WITH EXACTLY検索フォームで指定されたものだけが結果に表示されるようにするにはどうすればよいですか?GENRERATINGmeta_querytitleauthorgenre rating

カスタム検索フォームを作成しました。titleauthorおよびgenre;を検索するテキスト領域。および を検索するドロップダウンrating。以下で作成した は、 、、およびmeta_queryのみを検索します。しかし、私は今、のコードを追加する方法に困惑しています.titleauthorgenrerating

これは、meta_query 関係で視覚的に想像した方法です: (タイトル OR 作者 OR ジャンル) AND 評価

$args = array(
        'relation' => 'OR',
          array(
             'key' => 'title',
             'value' => $searchvalue,
             'compare' => 'LIKE'
          );
          array(
             'key' => 'author',
             'value' => $searchvalue,
             'compare' => 'LIKE'
          );
          array(
             'key' => 'genre',
             'value' => $searchvalue,
             'compare' => 'LIKE'
          );
), 
        array(
        'relation' => 'AND', 
          array(
             'key' => 'rating',
             'value' => $ratingvalue,
             'compare' => '=',
             'type' => 'NUMERIC'
          ));

私はあなたの助けとアドバイスに非常に感謝しています.

4

2 に答える 2

73

私はいくつかの助けを借りて解決策を見つけました。以下のコードは完全に機能しました。

    $args => array(
        'relation' => 'AND',
        array(
            'relation' => 'OR',
            array(
                'key' => 'title',
                'value' => $searchvalue,
                'compare' => 'LIKE'
            ),
            array(
                'key' => 'author',
                'value' => $searchvalue,
                'compare' => 'LIKE'
            ),
            array(
                'key' => 'genre',
                'value' => $searchvalue,
                'compare' => 'LIKE'
            )
        ),
        array(
            'key' => 'rating',
            'value' => $ratingvalue,
            'compare' => '=',
            'type' => 'NUMERIC'

        )
    )
);
于 2013-08-24T15:28:51.047 に答える