サポート » 使い方全般 » カスタム投稿タイプの組み合わせ抽出

  • 解決済 maose

    (@maose)


    現在、すでに運用中のサイトに新たにカスタム投稿タイプ「web」を追加することになりました。
    indexにおいて、通常ポストとカスタム投稿タイプを組合わせた記事一覧を出力する際に次の条件を指定したいと考えています。

    ・通常ポスト(post)は無条件に全て抽出
    ・カスタム投稿タイプ「web」はカスタムフィールド「pickup_flg」の値が「1」のものだけ抽出

    このような場合は、query_postsに渡すクエリはどのようなものを指定すれば良いのでしょうか。

    本来であれば
    ‘post_type’=> array(‘post’, ‘web’),
    ‘meta_query’ => array(
    array( ‘key’=>’pickup_flg’,
    ‘value’=>’1’
    )
    )
    上記のように指定すればよいかと思いますが、すでに運用中の投稿(post)においてカスタムフィールド「pickup_flg」を作成・指定していないために上記のような方法が採れません。

    何か打開策等、お教えて頂けませんでしょうか。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • post と web に共通のタクソノミー attr(web_flg,pickup_flg)を作ります。
    カスタム投稿 web は、常に web_flg にチェックを入れます(PS Taxonomy Expander などで、デフォルトでチェックするようにすれば良いでしょう)。

    $args = array(
      'post_type'   => array('post','web'),
      'tax_query'  => array(
        'relation' => 'OR',
        array(
          'taxonomy' => 'attr',
          'field'    => 'slug',
          'terms'    => 'pickup_flg',
          'operator' => 'IN'
        ),
        array(
          'taxonomy' => 'attr',
          'field'    => 'slug',
          'terms'    => 'web_flg',
          'operator' => 'NOT IN'
        )
      )
    );
    query_posts( $args );

    こうすると、post には触らずに実現できます。
    カスタムフィールド web_flg を追加して、meta_query を使うのは無理っぽいです。

    トピック投稿者 maose

    (@maose)

    pluto1234さん
    無事上記のクエリ、ならびにPS Taxonomy Expanderプラグインの合わせ技で解決することができました。
    ありがとうございます。

    すいません。もしかしたら、PS Taxonomy Expander は、投稿(post)の方もデフォルトで web_flg にチェックしてしまうかもしれません。それは、よくないですね。

    トピック投稿者 maose

    (@maose)

    pluto1234さん
    結論から言うとチェック入らず、大丈夫でした。

    PS Taxonomy Expanderプラグインでは投稿タイプ毎にデフォルトの値またはデフォルト無しを設定できるようで、無事やりたいことが実現できました。

    このプラグインを存じてなかったもので非常に救われました。
    ご丁寧にありがとうございました。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「カスタム投稿タイプの組み合わせ抽出」には新たに返信することはできません。