Wordpress

【WordPress開発】特定の固定ページのカスタムフィールドをWEBサイトに表示させる方法

2021年10月31日

しの

はじめまして、しのです。 WEBデザインやプログラミング、SEO、ブログ術に関する記事を主に書いています。 ブログの月間PVは約40000PV、月間収益は5桁です。 SEOで検索上位1位を約50件獲得(2023年6月時点)。

あれー?おかしいなあ。固定ページの内容をサイトに表示したいのにうまくいかないよ。コードが間違ってるのかな。解決方法どこかに載ってないかなあ。

本記事は上記のような疑問やお悩みに役立つ内容となっております。

WordPressでWEBサイトの開発をしている人でカスタムフィールドを使用している人は多いと思います。

そしてとある固定ページのカスタムフィールドの値をWEBサイトに表示したい、と思う時もありますよね。

今回は上記の内容について紹介します。

状況確認

ではまず固定ページのカスタムフィールドが表示されない現状について確認してみましょう。

以下のコードを入力していました。

  <?php
  $page_id = get_page_by_path('スラッグ名'); 
  $page = get_post( $page_id );
    echo $page -> post_content; 
?>

え?これじゃあ表示されないでしょ

とすぐにわかった方は流石です。

そうですね、以下のコードはページの記事内容を取ってくるものであり、カスタムフィールドの内容を取ってくるものではないからです。

 echo $page -> post_content; 

投稿の記事の内容は空白だったため、これでは何も表示されないのは納得ですね。

解決方法

解決方法としては、Advanced Custom Fieldsというプラグインを使う方法があります。

Advanced Custom Fieldsを使うことで、

get_field()

という関数を使うことができ、これで特定の固定ページのカスタムフィールドの内容を表示させる事が出来ます。

詳しく見ていきましょう。

get_field()関数は指定したAdvanced Custom Fieldsを使って設定したカスタムフィールドの値を取得する事が出来ます。

get_field()関数の基本形

get_field('フィールド名','投稿ID','フォーマットバリュー');

上記のように設定する事が出来ます。

例えば今回は、フィールド名を「acf_text」、投稿IDは「2139」だったので、以下のように記述しました。

フォーマットバリューは何も指定しなければtrueになります。

<?php echo get_field('acf_text',2139) ?>

これにより、

投稿ID2139のacf_textという名前の値を出力(echo)するよ

という意味になります。

例えば、以下のように「WEB制作を担当します」と書いたものが、

以下のように表示されました。

無事解決!パチパチパチパチ!

まとめ

いかがでしたでしょうか。

固定ページのカスタムフィールドの内容をサイトの任意の場所に表示させたいケースは非常に多くあるため、この使い方を覚えておいて損はないと思います。

それではまた次の記事でお会いしましょう♪

  • この記事を書いた人
  • 最新記事

しの

はじめまして、しのです。 WEBデザインやプログラミング、SEO、ブログ術に関する記事を主に書いています。 ブログの月間PVは約40000PV、月間収益は5桁です。 SEOで検索上位1位を約50件獲得(2023年6月時点)。

-Wordpress
-