サポート » プラグイン » ACFの値を別ページかつループ外で表示する方法

  • 解決済 mikujin

    (@mikujin)


    お世話になります。
    ACFの値を別ページかつループ外で取得・表示したいのですが、どのように書けばよいか分かりません。
    以下のコードを参考に自分なりにコードを組み合わせて書いてみましたが、実装できず困っています。

    ・ループの外でカスタムフィールドの値を表示
    <?php
    global $wp_query;
    $postID = $wp_query->post->ID;
    echo get_post_meta($postID, ‘カスタムフィールド名’, true);
    ?>

    ・別のページでカスタムフィールドの値を表示
    <?php echo get_post_meta(値を取得したいページのID, ‘カスタムフィールド名’, true); ?>

    ご教示頂ければ助かります。
    何卒宜しくお願い致します。

    どうぞ宜しくお願いいたします。

    • このトピックはmikujinが2年、 3ヶ月前に変更しました。
    • このトピックはmikujinが2年、 3ヶ月前に変更しました。
    • このトピックはmikujinが2年、 3ヶ月前に変更しました。
4件の返信を表示中 - 1 - 4件目 (全4件中)
  • @mikujin さん

    こんにちは。

    global $wp_query;
    $postID = $wp_query->post->ID;

    →ここが気になるのですが、グローバル変数 $wp_query には、「現在表示しているページに関係する記事の情報」が格納されます。

    なので、シンプルに以下のように書けばいいのではないでしょうか。

    <?php
    echo get_post_meta( 10, 'meta_key');
    
    // 「10」は、取得したいカスタムフィールドが設定されている記事のID
    // 「meta_key」は、取得した記事に設定されているカスタムフィールド名
    ?>

    また、「10」という記事IDをベタ書きするのでなく、get_page_by_pathWP_Query を使って記事を抽出してもよいと思います。

    トピック投稿者 mikujin

    (@mikujin)

    Tetsuaki Hamano 様

    ご教示頂きありがとうございます。
    説明不足で申し訳ないです。補足させて下さい。
    記事ID「10」の「meta_key」というACFの値(真偽)にチェックがあったとき、記事ID「10」の「meta_key2」(テキスト)を出力したいです。
    ご教示頂いた内容は、直接「meta_key」を返してくれますが、はじめに条件分岐をしたいです。
    このような場合は、どのように書けば実装できますでしょうか??

    get_page_by_path 、WP_Query も引き続き勉強させて頂きます。
    ご教示頂きありがとうございます!!

    @mikujin さん

    こんにちは。
    未検証ですが、以下のようになると思います。

    
    <?php
    $meta_key = get_post_meta( 10, 'meta_key');
    
    if ( $meta_key === true ) { // ←ACFに設定によっては、ここがbooleanで返ってこないかもしれません
    	echo get_post_meta( 10, 'meta_key2');
    }
    ?>
    

    また、これはPHPの初歩的な知識となりますので、今後の応用のためにも、一度PHPの基礎を勉強されてみる事をおすすめします。

    トピック投稿者 mikujin

    (@mikujin)

    Tetsuaki Hamano 様

    再度の教示ありがとうございます。
    頂いたコードでは意図した通りの実装ができなかったのですが、下記コードで実装ができました。

    <?php if ( get_post_meta( 10, 'meta_key', true ) ) : ?>
    <?php the_field('meta_key2',10); ?>
    <?php endif; ?>

    はい。本当にその通りです。
    今年こそは基礎からPHPの学習をしたいと思っております。
    迅速なご回答本当にありがとうございました(*^-^*)

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「ACFの値を別ページかつループ外で表示する方法」には新たに返信することはできません。