サポート » 使い方全般 » カスタムフィールドの値に該当する記事の一覧を表示させたい

  • 解決済 curono

    (@curono)


    wordpressのカスタムフィールドプラグイン「Advanced Custom Fields」を使ってタームにカスタムフィールドを追加しています。このタームに追加したカスタムフィールドの値に該当する記事の一覧を表示させたいと思います。

    果物(kudamono):タクソノミー
    -りんご(apple):ターム
    --色(omosa):カスタムフィールド(青、緑、紫から青を選択)
    -なし(nashi):ターム
    --色(omosa):カスタムフィールド(青、緑、紫から緑を選択)
    -ぶどう(budo):ターム
    --色(omosa):カスタムフィールド(青、緑、紫から緑を選択)

    というふうにタクソノミーとタームを作成しています。

    これから『緑に該当するタームを取り出しその緑に該当する投稿の記事一覧表示する。』

    といったことがしたいのですが下記のプログラムだと、1つのタームの記事一覧しか表示できません。つまり、5件該当するタームがあったとするとその内、一件のタームに該当する記事しか表示されないのです。同じタームの記事一覧を表示させたいのですがどうしたらいいでしょうか?

    つまり上の場合だと、『緑』に該当するタームは『なし』と『ぶどう』ですが、この『なし』と『ぶどう』の記事一覧を表示したいのです。この際、タームごとの記事一覧ではなく通常の記事一覧のように表示させたいのです。

    プログラム的には、

    $args = array(
    	'post_type' => 'watch',
    	'tax_query' => array(
    		array(
    			'taxonomy' => 'kudamono',
    			'field' => 'term_id',
    			'terms' => array(1,2,3)
    		)
    	)
    );

    このようにしたいのです。

    以上よろしくお願いします。

    <?php
    $sql = $wpdb->get_results("
    	SELECT GROUP_CONCAT(option_name SEPARATOR ',') as namess
    	FROM $wpdb->options
    	WHERE option_value = '緑'
    ");
    foreach($sql as $sq){
    $targetText = $sq->namess;
    $replaceText = str_replace("kudamono_", "", $targetText);
    $replaceTexts = str_replace("_bunnrui", "", $replaceText); 
    
    $args = array(
    	'post_type' => 'watch',
    	'tax_query' => array(
    		array(
    			'taxonomy' => 'kudamono',
    			'field' => 'term_id',
    			'terms' => array($replaceTexts)
    		)
    	)
    );
    
    $postslist = get_posts( $args );
    foreach($postslist as $post){
    echo '<li><a href="'.$post->guid.'">'.$post->post_title.'</a></li>';
    }
    }
    ?>
    </ul>
2件の返信を表示中 - 1 - 2件目 (全2件中)
2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「カスタムフィールドの値に該当する記事の一覧を表示させたい」には新たに返信することはできません。