• 解決済 quiqui

    (@quiqui)


    参照している投稿に設定されているカスタムフィールドの値と
    同じ値がセットされている投稿を一覧で表示したいのですが、
    うまくいかず困っています。どうかお助けいただけると幸いです。

    カスタムフィールドは、Advanced Custom Fields PROを使って追加しています。

    【追加したカスタムフィールド】
    フィールド名:viaurl
    フィールドタイプ:ページリンク
    空の値を許可するか?:いいえ
    複数の値を選択できるか?:いいえ

    【記述している一覧用のコード】
    以下をsingle.phpに追加いています。

    <?php 
      $post_id = get_the_ID();
      $val = get_field('viaurl',$post_id);
      $args = array(
        'posts_per_page' => 5,
        'post_type' => 'post',
        'orderby' => 'rand',
        'post__not_in' => array($post_id),
        'meta_query' => array(array(
          'key' => 'viaurl',
          'value' => $val,
          'compare' => 'IN'
        )),
      );
      $wp_query = new WP_Query($args);
      if ($wp_query->have_posts()):
    ?>
    <ul class="experience-list">
      <?php while($wp_query->have_posts()): $wp_query->the_post(); ?>
        <li>
          <h2>
            <a href="<?php echo get_permalink(); ?>">
              <?php the_title(); ?>
            </a>
          </h2>
        </li>
      <?php endwhile; ?>
    </ul>
    <?php endif; wp_reset_postdata(); ?>

    カスタムフィールド「viaurl」に設定されている値が
    同じ投稿を絞り込んで表示させたいのですが、何も出力されません。

    meta_queryの条件を削除すると、開いている投稿以外の投稿が表示されので、
    meta_queryの条件が間違っているのかなと思うのですが、
    どこを直せば良いのかわからず困っています。

    ご助言いただけると大変助かります。
    どうぞよろしくお願いいたします。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • こんにちは

    Advanced Custom Fields プラグイン (Pro ではないです) の、ページリンクは投稿 ID で保存されているようです。

    よって、

    $val = get_field( 'viaurl', $post_id );

    $val = get_field( 'viaurl', false, false );

    'meta_query' => array( array(
    	'key' => 'viaurl',
    	'value' => $val,
    	'compare' => 'IN'
    ) ),

    'meta_query' => array( array(
    	'key' => 'viaurl',
    	'value' => $val,
    ) ),

    でしょうか?

    P.S.
    $wp_query はグローバル変数なので書き換えないほうがいいかと思います。

    • この返信は5年、 10ヶ月前にishitakaが編集しました。
    トピック投稿者 quiqui

    (@quiqui)

    ishitaka様
    ご回答ありがとうございます。

    ご指摘の通りに変更したら、うまくいきました!感謝いたします!

    また、$wp_queryについてもご助言いただきありがとうございます。
    変数名を変更しました。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「カスタムフィールドの値による投稿一覧の絞り込みについて」には新たに返信することはできません。