サポート » 使い方全般 » カスタムフィールドの値で関連記事を表示したい

  • 解決済 ioxrxogi

    (@ioxrxogi)


    「カスタムフィールドA」の値が「みかん&りんご」「ぶどう&みかん」「みかん」……とあった場合、今の設定ではそれぞれは関連記事としては表示されません。

    	$food = 「カスタムフィールドA」;
    
    	'meta_query' => array(
    	'key' => 'カスタムフィールドA',
    	'value' => $food,
    	'compare' => '='
    	)

    そこで、「カスタムフィールドB」を設け、「A「みかん」&B「りんご」」「A「ぶどう」&B「みかん」」「A「みかん」&B「」」……として、

    	'meta_query' => array(
    		array(	'key' => 'カスタムフィールドA',
    			'value' => array($food, $food1),
    			'compare' => 'IN'
    			),
    		array(	'key' => 'カスタムフィールドB',
    			'value' => array($food, $food1),
    			'compare' => 'IN'
    			),
    		'relation' => 'OR')

    しかしこれでは、こんどカスタムフィールドに値がないものも表示されてしまいます。
    (コードは一部省略しています)

    何か方法はないでしょうか?

    • このトピックはioxrxogiが3年、 8ヶ月前に変更しました。
2件の返信を表示中 - 1 - 2件目 (全2件中)
  • カスタムフィールドがそもそも設定すらされていない時に何かあったような気がしましたが
    それとは別に気になった点を。

    最後の
    「A「みかん」&B「」」
    も一つの原因ではないでしょうか?

    $food, $food1
    を定義する際に工夫すればいいかと思います。

    $foods = array();
    if (! empty (get_post_meta('カスタムフィールドA'))) {
      $foods[] = get_post_meta('カスタムフィールドA');
    }
    if (! empty (get_post_meta('カスタムフィールドB'))) {
      $foods[] = get_post_meta('カスタムフィールドB');
    }
    ....................
    'value' => $foods
    • この返信は3年、 8ヶ月前にjdbbが編集しました。
    • この返信は3年、 8ヶ月前にjdbbが編集しました。

    jdbbさん、ありがとうございます。

    get_post_metaではうまくいかなかったのですが、
    かわりにpost_customでやったらうまくいきました。

    値のないものの扱いをどうにかすればいいと思っていたのですが、
    こんなやり方もあるんですね。
    (値のないものにダミーの値を入れて……と考えていたので、よかったです)

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「カスタムフィールドの値で関連記事を表示したい」には新たに返信することはできません。