前回の「Advanced Custom Fieldsでカスタムフィールドを作る」の続きとなります。

Advanced Custom Fieldを使ってカスタムフィールドを作成し、使用できるようにした所までです。

しかし、カスタムフィールドは私達ユーザーが後付けで入れる項目なので、そのままではWEBサイト上に表示することができません。

コードを書く必要がありますが、そういった作業を楽にしてくれる機能も、Advanced Custom Fieldsには用意されています。

今回はAdvanced Custom Fieldsを使って作成したカスタムフィールドに入力した内容を、WEBサイト上に表示する方法について書いて行きます。

テンプレート階層について

ワードプレスの投稿画面で編集した内容は、single.phpやpage.phpといったテンプレートファイルの中で呼び出されるようになっています。

例えば、本文に入力されたものはthe_content()という関数で呼び出されています。

今回使用するのはTwentyTwentyというワードプレス標準のテーマなので、実際はcontent-test.phpというファイル内にこの関数の記述があります。

タイトル、本文、メニューといった最初からある項目はこのようにテンプレート内で元々呼び出されるようになっているので、インストール後すぐにブログとして使う事ができるわけです。

しかし、先ほど書いた通りでカスタムフィールドで作成した項目は後付けのものなので、WEBサイト上に表示するには、この例と同じくテンプレートファイル上で呼び出さなければなりません。

その時に把握しておいた方が良いのが、「テンプレート階層」というワードプレスのWEBページを表示するためのルールです。

前回はカスタムフィールドを作成し、カスタム投稿として使えるようにしました。

この作成したフィールドをWEBページ上に表示するには、このルールに当てはまるテンプレートの使用、または作成を行う必要があります。

なので、single-{カスタム投稿タイプ}.phpを作成するというルールに基づき、「single-test.php」というファイルを用意します。

この中にカスタムフィールドに入力した値を呼び出していきます。

「テンプレート階層」について詳しくは、以前に書いた記事をご覧ください。

また、テンプレートファイルの編集やカスタマイズを行う場合は「子テーマ」を使用すると便利ですよ。

もちろん、通常の投稿に表示するようにしたければ、テンプレートファイルを用意する必要はありません。

投稿内であれば、single.php。

固定ページであれば、page.php。

こちらのファイルを編集すればOKです。

この場合でも、編集した内容がテーマのアップデートで消えないように、子テーマのご利用をオススメします。

テンプレート内でカスタムフィールドの値を呼び出す場所

ではこれから、Advanced Custom Fieldsで作成したカスタムフィールドの値をWEBページ上に表示していきます。

基本的にはテンプレートファイルをコピーして行うので、どこにコードを書くかをまず見ます。

この先はテーマによって変わりますが、探し方は変わりません。

さて、TwentyTwnetyの投稿のフォーマットとなっているテンプレートファイルのsinglur.phpはこのようになっています。

ほとんどのテーマが通常の投稿を表示するテンプレートファイルとして、single.phpが用意されています。

その中でget_template_part()という関数で、中身をテンプレートとして呼び出す。

というものとなっています。

TwentyTwnetyだとその範囲が広くなっていて、投稿と固定ページのテンプレートが無い場合に使用される、singlur.phpというファイルとなっています。

で、get_template_part()の引数を見てみると、

「’template-parts/content’」と「get_post_type()」

となっています。

前半部分でファイルのディレクトリのパスとファイル名の一部が指定されています。

言い換えると、「template-parts」というディレクトリの中の、「content-{get_post_type()}.php」というファイルがテンプレートとして指定される。

となります。

そこで「template-parts」ディレクトリを見ると、「content.php」というものがあります。少し足りないですが、この中を見てみると、「the_content()」という関数を見つける事ができます。

先ほどは部分的に掲載したので、1行目から掲載します。

この「the_content()」という関数で、編集画面で作成した本文が呼び出されるので、コンテンツを表示する部分であるという目印にできます。

ちなみにタイトルは、20行目で呼び出されているヘッダーテンプレート内に設定されています。

なので、content.phpを編集すればよいのですが、このファイル自体を編集してしまうと通常の投稿や固定ページの表示にも影響が出てしまいます。

そこで先ほど触れた引数を使い、content.phpを元に「content-{カスタム投稿名}.php」というテンプレートファイルを作成すれば良いということが分かります。

・・・とちょっと長くなってしまいました。

ここまでの流れを簡単に言うと、「カスタムフィールドに入力した内容を表示するには、content-{カスタム投稿名}.phpというテンプレートファイルを作成すれば良い。」ということです。

ちょっと回りくどくなってしまいましたが、そういう事です。

さて、今回使用するAdvanced Custom Fieldsで作成したカスタム投稿タイプの名称は「test」です。

なので、content-test.phpというファイルに呼び出すコードを入力していきます。

各フィールドを呼び出す「専用関数」

余談が長くなってしまった気分ですが笑

本題のAdvanced Custom Fieldsで作成したカスタムフィールドに入力した内容を、WEBページ上に表示する方法です。

主に、Advanced Custom Fieldsに用意されている専用の関数を使って呼び出していきます。

この専用関数が便利なんです。

今回は前回作成した項目のフィールドの呼び出し方のみ説明します。

・テキスト
・画像
・テキストエリア

の3つです。

テキストフィールド・テキストエリアの内容を呼び出す

基本となるテキストフィールドの呼び出しで使うのは、基本のAdvanced Custom Fieldsで作成した値を呼び出す関数の基本的なモノを使います。

それが、the_field()またはget_field()です。

このように使います。

これで()内で指定したフィールド名(Advanced Custom Fieldsでカスタムフィールドを作成した時に付けた「カスタムフィールド名)を指定すれば、そのフィールドの内容が呼び出されます。

今回は呼び出したいだけなので、the_field()を使用します。

get_field()は変数に入れて使用したい場合や、if文で使いたい時に使用します。個人的にはこちらの方で慣れてしまってます。

テキストエリアも同じ関数で呼び出す事ができます。

今回デモ用で作成したテキストフィールドは以下の内容です。これを「カスタムフィールド名」の所に入力していきます。

Advanced Custom Fieldsで使用する基本的な関数なので、覚えておくと便利です。

画像フィールドの呼び出し

画像の呼び出し方法はいろいろとあります。

ただ表示するだけであれば、前回の記事のように返り値を「画像URL」にして、HTMLのsrc属性で呼び出すのが楽かと思います。

表示する画像のサイズを統一したい場合には、返り値を「画像オブジェクト」にすると指定できるようになります。

その場合、get_field()で呼び出して変数に格納し、必要な情報を設定していく。という流れとなります。

実際のコードはこんな感じですね。

どちらが良いかは必要に応じて選んでいただければと思います。

アップロード前に画像を編集してサイズ等がほぼ変わらない場合は、「画像URL」で。画像によって大きさが異なる場合や、サイズ以外の情報も必要な場合は、「画像オブジェクト」という使い分けもできます。

今回作成するテンプレートで使用する関数は以上です。

使用するカスタムフィールドタイプによって色々なことができます。使い方は公式サイトに載ってますので、ご覧になってみて下さい。

使いかたを細かく説明して下さっているサイトもあるので、ありがたいです。

テンプレートの表示を確認する

ここまでの内容をまとめれば、テンプレートを完成させることができます。

こんな感じです。

元のテンプレートファイルのthe_content()があった場所に追加しただけですが。

これをFTPソフトでアップロードし、カスタム投稿の編集画面から試しにプレビューを表示してみます。

ということで、仮でカスタムフィールドに値を入力して、プレビューを押してみます。

仮入力
仮で入力しました。
呼び出し確認
無事呼び出されています。

無事表示させることができました!

呼び出したフィールドを<div>で囲んでいるので、これにclassをつけてCSSを調整することもできます。

実際に使用する場合には、これだけでは寂しいですからね。

色々な使い方ができるAdvanced Custom Fields

前回からの引き続きの内容となりました。

Advanced Custom Fieldsを使用すると、専用の関数のおかげでオリジナルの投稿画面を作成することができます。

今回紹介できていないフィールドタイプと、用意されている関数やフックを使う事で、ワードプレスで作成するWEBサイトの幅を広げる事ができます。

  ワードプレス関係の他の記事はこちらからどうぞ!  

「ホームページは必要なのだろうか・・・?」

SNSや様々なWEBサービスの登場で、ホームページ以外にもネット上で活動する方法はどんどん増え続けています。
そのようにサービスが増えても、ホームページは中心に据えられる数少ない必要不可欠なツールであると、当社は考えています。
 
株式会社 東建工業-インターネット事業部-では、ホームページ制作のご依頼を随時お受けしております。
 
・企業ホームページの作成
・ブログサイトの作成
・ECサイトの作成
 
など、ご要望に合わせて作成します。ご相談頂いた内容を踏まえて、こちらからご提案もさせて頂きます。
新規ホームページの作成だけでなく、すでに使用されているホームページのリニューアルについてのご相談もお受けしております。
ホームページ開設後の運営・運用についてのご相談もお受けしております。
 
お気軽にお問合せ下さい!
 

 
 

株式会社東建工業-インターネット事業部-
イラスト制作例

当社はオリジナルイラストの制作を行っております。
制作例を一部掲載していますので、是非ご覧ください!

当社のデザイン作成について

当社はWEB制作に加え、デザイン作成と制作も行っております。

・チラシ、パンフレット等の紙媒体に使用するデザインと制作
・オリジナルデザインでのクリアホルダーの制作
・オリジナルデザインでのステッカー、シールの制作
・オリジナルデザインでのプリントTシャツの制作
などなど・・・

様々なデザインに関する制作をご依頼頂けます。
詳しくは当社のデザイン作成についてのブログ記事をご覧ください。

前の記事

次の記事

こちらも読まれています

お問い合せ

この記事の内容や当社についてのお問い合わせはこちらのフォームをご覧下さい。

ご利用前に当社のプライバシーポリシー免責事項をお読み下さい。

送信ボタンを押された時点で、当社プライバシーポリシー又は、免責事項にご同意頂いたものとみなします。