【WordPress】Advanced Custom Fields(カスタムフィールド)を使ってPDFを表示する方法

Advanced Custom Fields(カスタムフィールド)を使ってPDFを表示する方法

WordPressサイトのカスタマイズで、クライアントが自らの手で毎月スケジュールをPDFで更新をしたいという案件があったので、その際に実装した方法をご紹介。

カスタムフィールドのプラグインを使用すれば、サイト運営者がプログラミング言語を全く理解していなくても、WordPress管理画面の操作さえできれば容易に運営できるようになります。

WordPressサイトにPDFを埋め込む
WordPressサイトにPDFを埋め込む

カスタムフィールドの設定

プラグインの「Advanced Custom Fields」をインストールして有効化する。

Advanced Custom Fields
Advanced Custom Fields

カスタムフィールド → 新規追加でフィールドグループを新規追加する。

カスタムフィールド
カスタムフィールド
  • フィールドラベル → 運営者がわかりやすい文言
  • フィールド名 → 実装者や保守する人がわかりやすい文言
  • フィールドタイプ → PDFを選択できるように「ファイル」
  • 返り値 → ファイルURL

他の箇所は特にいじらなくてOK。

カスタムフィールド
カスタムフィールド

ルールは作成したフィールドグループを表示する条件を設定する。

PHP

<section id="pdf">
  <div class="inner">
    <iframe src="<?php the_field('pdf'); ?>" width="100%" height="100%"></iframe>
  </div>
</section>

PDFを表示させたいページに使用するPHPファイルに、上記のコードを記述。

<iframe src="<?php the_field('pdf'); ?>" width="100%" height="100%"></iframe>

上記のコード以外は適宜コードを記述。
srcの部分にカスタムフィールドを出力するphpコードを記述する。

「the_field(‘pdf’)」の「’pdf’」は、カスタムフィールドのフィールドグループを作成したときに設定したフィールド名の部分にあたる。

返り値を「ファイルURL」と設定しているので、src=’PDFファイルのURL’と出力され、PDFファイルが表示されるようになる。

CSS

/* PDF */
#pdf .inner {
  max-width: 1050px;
  margin: 0 auto;
}

.inner iframe[src$=".pdf"] {
  width: 100%;
  height: 50vh;
}

あとは適当にCSSをあてるのだが、注意しないといけないのはheight。
パーセント表記で数値を指定するとうまく動作しないので、vhやpxなどでサイズ指定する方が良いでしょう。