サポート » 使い方全般 » Advanced Custom Fields カスタムフィールド表示されない

  • yumi_coro

    (@yumi_coro)


    WP初心者です。

    やりたい事は、
    1.商品に投稿一覧で画像の下に金額または”売り切れ”を表示させる
    2.投稿記事内にも金額または”売り切れ”の表示させる
    この2つをカスタムフィールドで設定したいと思い
    Advanced Custom Fieldでうまく表示できません。

    現在やった事
    Advanced Custom Fields 4.3.4をプラグイン新規追加からインストールして
    フィールドグループを新規追加から設定後、(フィールド名はprice)
    やりたい事1の投稿一覧はサムネイル画像の下に<h2>で囲んだタイトルを表示させているのでその下に金額を表示させたいので
    <h3><?php the_field(“price”, $post->ID); ?></h3>
    と設定しましたが吐き出されたHTMLを見ると
    <h3></h3>
    となっており、ちゃんと出力できておりません。

    ちなみに同様に記事内にマークアップしたやりたい事2は
    吐き出されたHTMLはコメントアウト状態になっておりました。

    基本的なやり方が間違っているのかもしれませんが
    教えていただければ幸いです。
    よろしくお願いします。

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • Fumito MIZUNO

    (@php-web)

    やりたい事1、についてですが、

    「ループ内で、その投稿のカスタムフィールドを出力したい」ならば、the_field(“price”)だけでOKです。

    もし、「投稿を自分で指定して、その投稿のカスタムフィールドを出力したい」ならば、the_field(“price”, $post->ID);ですが、この場合は自分で投稿IDを設定する必要が有ります。(こちらがやりたくて、上手くいっていない場合は、おそらく$postが取得できていないと思われます)

    http://www.advancedcustomfields.com/resources/functions/the_field/

    /*
    * display a field value from the current post
    */

    the_field( “text_field” );

    /*
    * display a field value from another post
    */

    the_field( “text_field”, 123 );

    やりたい事2、は実際のコードが分からないと、アドバイスしにくいと思います。

    トピック投稿者 yumi_coro

    (@yumi_coro)

    Fumito MIZUNO様

    早速のご回答感謝いたします。ありがとうございます。
    $post->IDを抜いて
    <h3 class=”price”><?php the_field(“price”); ?></h3>
    で吐き出されたHTMLを確認したところまだ
    <h3></h3>となっており、カスタムフィールド部分の出力がされてません。
    (ループ内には記載しております)
    ちなみに<h3>を取って試してみても同様でした。
    もし他に原因がわかれば教えていただければ幸いです

    なお、ダッシュボードのフィールドグループを編集画面では

    フィールド名:price
    フィールドタイプ:テキスト
    必須:はい
    デフォルト値: 空欄
    Placeholder Text:空欄
    Prepend:空欄
    Append:空欄
    フォーマット:No formatting
    Character Limit:空欄
    条件判定:いいえ

    オプション
    順序番号 0
    位置 high(after title)
    Style Seamless(no metabox)
    と設定しています。

    モデレーター gatespace

    (@gatespace)

    もしかして:<h3 class="price"><?php the_field("price"); ?></h3>を投稿欄に書いてる?

    その部分だけだと分からないので、
    今書いてる single.php のループ内のコード(while ( have_posts() ) : 〜end while;の間)を投稿してみては?

    あと、デバッグモードでエラーが出ていない確認

    トピック投稿者 yumi_coro

    (@yumi_coro)

    ややこしく申し訳ありません

    まずやりたい事1のコードを書きます

    アーカイブページは、archive.phpにcontent-archive.phpが読み込まれるように
    コーディングしています。
    (本格ビジネスサイトを作りながら学ぶ WordPressの教科書(最適化)の本のやり方を参照しています)

    ■archive.php
    <div class=”posts” >
    <?php
    if (have_posts() ) :
    while (have_posts()):
    the_post();
    get_template_part(‘content-archive’);
    endwhile;
    endif;
    ?>
    </div><!–posts–>

    ■content-archive.php
    <article <?php post_class(); ?>>
    <div class=”box block thumbs”>
    “>
    <?php the_post_thumbnail(‘large_thumbnail’, array(‘alt’ => the_title_attribute(‘echo=0’), ‘title’ => the_title_attribute(‘echo=0’))); ?>

    <h2>” class=”title_a”><?php the_title(); ?></h2>
    <h3 class=”archive_price”><?php the_field(“price”); ?></h3>
    </div><!–box–>
    </article>

    デバッグモードのエラーでは表示されていませんでした。
    とても初歩的な事だと思うのに申し訳ありませんが、自力で解決しようとして色々試しましたが全くわかりません。。
    お手数ですがよろしくお願いします。

    ishihara takashi

    (@ishihara-takashi)

    1. フィールドは通常のテキストでしょうか?
    ( repeater fieldなどのアドオンを使用していないか。 )

    2. 同じ「price」というフィールド名をもったカスタムフィールドはないでしょうか?

    3. <?php echo var_dump( get_post_meta( $post->ID, ‘price’ ) ); ?>
    上記コードをcontent-archive.php内に記述し,出力結果をおしえてください。

    トピック投稿者 yumi_coro

    (@yumi_coro)

    ご回答ありがとうございます!

    1.通常のテキストだと思います。
    特にアドオンも設定はしておりません

    2.カスタムフィールドは1つしか設定していないので
    priceと同様のものはありません。

    3.出力結果です
    画面上にはarray(0) { }
    ソース上では “array(0) { }”
    と表示されました。

    度々お手数ですがよろしくお願いします。

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • トピック「Advanced Custom Fields カスタムフィールド表示されない」には新たに返信することはできません。