サポート » 使い方全般 » meta_queryが使えない?

  • 解決済 tkmojo

    (@tkmojo)


    すみません、もの凄く簡単な事で躓いているのかもしれませんが…

    カスタム投稿タイプのアーカイブで
    カスタムフィールドの内容で絞り込みを行いたいのですが、meta_queryに入れると機能しなくなります。

    $args = array(
    ‘post_type’ => ‘member’,
    ‘showposts’ => -1,
    ‘meta_query’ => array(
    ‘meta_key’ => ‘type’,
    ‘meta_value’ => ‘staff’,
    ‘compare’=>’=’
    )
    );
    query_posts( $args );

    上記では「member」というカスタム投稿の、「type」というチェックが「staff」のもののみを抽出しようとしていますが、staffのみの抽出にはなりません。
    meta_queryに入れずに、下記のようにすれば抽出ができます。

    $args = array(
    ‘post_type’ => ‘member’,
    ‘showposts’ => -1,
    ‘meta_key’ => ‘type’,
    ‘meta_value’ => ‘staff’,
    ‘compare’=>’=’
    );
    query_posts( $args );

    複数のカスタムフィールドで絞り込みたいのでmeta_queryを使いたいのですが、上記ソースは何かおかしいでしょうか?
    実際に複数で行っても機能しませんでした。

    よろしくお願いいたします。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • 問題とは無関係ですがquery_postsではなくget_postsWP_Queryを使いましょう。

    で、問題はチェックというのはチェックボックスだと想定して、プラグイン等でチェックボックスを実装したんだろうと思いますが、その保存されたmeta_valuestaffではない為、判定できないだけだと思います。
    どうやってチェックを実装したのか、その辺り詳しく書いた方が突っ込んだ回答ができると思います。

    あ、また変な事書いたかも…

    • この返信は6年、 2ヶ月前にmanboが編集しました。
    トピック投稿者 tkmojo

    (@tkmojo)

    早速の回答ありがとうございます。

    カスタムフィールドはAdvanced Custom Fieldsで実装しています。
    ラジオボタンで選択肢を下記のように設定しています。
    member : 選手
    staff : スタッフ

    質問文の後半にあるように、meta_queryから出して$args = array()の直下に置けば機能するので、meta_valueがstaffではない、という事は無いと思うのですが…。

    尚、質問前にはget_postsでもやってみたんですが同じでした。
    また、他のカスタムフィールドで試しても同様なんですよね。

    最初に書いた通り問題とquery_postsは無関係ですがquery_postsは使わない方が良いと書かれているので別の方法を提案しました。
    テンプレートタグ/query posts このページを読んでください。

    あと最後に書いた通り、変な事を書いてました。
    条件を変えれば出力されたと書いてあったのに気付いたので…

    とりあえずmeta_queryを使う場合のパラメータが間違っているので変えてみてください。

    $args = array(
    	'post_type' => 'member',
    	'showposts'	=> -1,
    	'meta_query' => array(
    		array(
    			'key' => 'type',
    			'value' => 'staff',
    			'compare' => '='
    		)
    	)
    );

    そしてquery_postsではない別の関数を使ってください。

    • この返信は6年、 2ヶ月前にmanboが編集しました。
    トピック投稿者 tkmojo

    (@tkmojo)

    度々回答ありがとうございます。

    meta_queryの中はmeta_が不要だったんですね。
    初歩的な事でお手を煩わせてすみません。

    get_postsで実装して、無事意図通りにできました。
    ありがとうございました。

    トピック投稿者 tkmojo

    (@tkmojo)

    解決済みを忘れてました

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • トピック「meta_queryが使えない?」には新たに返信することはできません。