サポート » 使い方全般 » get_postを実行後の2種類のフィールドの取得方法

  • tantaka

    (@tantaka)


    「Advanced Custom Fields」と「Custom Field Template」
    1つの記事でを併用して使用してしていまして、
    値の取得を上記2つのから
    それぞれ値を取得したいのですが、
    下から3行目(wp_get_attachment_url($u))の値は取れているのですが、
    下から7行目(the_field(“eventtype”))Advanced Custom Fieldsの方の値だけが
    取得できないのですが、なにかやり方を間違っていましたら
    ご指摘いただけたら幸いでございます。
    どうぞよろしくお願い致します。

    =====================================

    $args = array(
    ‘post_type’ => ‘event’,
    ‘meta_query’ => array(
    array(
    ‘key’ => ‘event_date’,
    ‘value’ => 140322,
    ‘compare’ => ‘=’,
    ‘type’ => ‘DATE’
    ),
    ),
    );
    $postslist = get_posts($args);
    foreach($postslist as $ps) :setup_postdata($ps);
    echo the_field(“eventtype”);
    $url = get_post_meta($ps->ID,’url’,false);
    foreach($url as $key=>$u) {
    echo wp_get_attachment_url($u);
    }
    endforeach;
    wp_reset_postdata();

    ====================================

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • 試してはないのですが、以下のコードを

    foreach($postslist as $ps) :setup_postdata($ps);
    echo the_field("eventtype");
    $url = get_post_meta($ps->ID,'url',false);
    foreach($url as $key=>$u) {
    echo wp_get_attachment_url($u);
    }
    endforeach;

    以下のコードに変更してはどうでしょうか?

    foreach($postslist as $post) :setup_postdata($post);
    echo the_field("eventtype");
    $url = get_post_meta($post->ID,'url',false);
    foreach($url as $key=>$u) {
    echo wp_get_attachment_url($u);
    }
    endforeach;

    変更したのは$ps を $post に変更しただけです。

    FUKAZAWA Kojiro

    (@witch_doktor)

    こんにちは。
    まず、eventtypeというkeyが持っている情報がただの文字列なのか、何かのIDなのか、それとも複数の選択項目を含むものなのかによっても取り出し方が変わったりしますので、そこが気になるところです。

    未検証ですが、考えられる線をいくつか挙げますと。

    まずは「eventtype」というkey名は間違いないかよくご確認ください。ハイフンやアンダーバーは入っていませんか?

    Advanced Custom Field独自の関数「the_field」はechoする必要はありません。そのままでhtmlとして出力されます。ので、echoは外してみてください。

    それでも出力されないのであれば、the_fieldの利用を諦めて、post_custom関数を使って「eventtype」を呼び出すのも手です。

    トピック投稿者 tantaka

    (@tantaka)

    こんばんわ。
    返答遅くなり申し訳ございません。

    Hosoyaさん、Fkazawaさんご返答ありがとうございます。
    $ps を $post に変更したのですが、
    だめでした。そこで二つ目の引数にpost->IDを入れる事で解決致しました。

    the_field(‘eventtype’)

    the_field(‘eventtype’,$ps->ID);

    ご指示の通り echo はとりました。
    the_fieldに echo も含まれるのですね。。

    寝れずに考えていたので助かりました。
    お二人のご教授でやる気がでました。
    本当にありがとうございました。

    FUKAZAWA Kojiro

    (@witch_doktor)

    動いたようで、よかったです!
    後からこのトピックを参考にする方のために「解決済み」にしておいてくださいませ!

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「get_postを実行後の2種類のフィールドの取得方法」には新たに返信することはできません。