カテゴリー
WordPressカスタマイズ

ページ毎のスクリプトなど追加するヘッダー情報を指定ページのみに出力

以前にメールフォームプロCGIのWordPressでの設置方法を書きました。
前回までの内容ではCGIでプログラムに必要なスクリプトの読み込みをヘッダテンプレート内に記述するため、例えばフォームが必要なのはお問い合わせのページだけだったとしても、トップページその他不必要なページにまで書き出してしまいます。

表示速度やクローラビリティを考えるとヘッダ内はシンプルにしたいものです。

プログラムに必要な記述を整理する

メールフォームプロCGIには以下のCSSとjsが必要です。

<link rel="stylesheet" href="http://example.com/cgi/mailformpro/commons/mailform.css" type="text/css" />
<script type="text/javascript" src="http://example.com/cgi/mailformpro/commons/jQuery.js" charset="UTF-8"></script>
<script type="text/javascript" src="http://example.com/cgi/mailformpro/commons/mfp.lang.js" charset="UTF-8"></script>
<script type="text/javascript" src="http://example.com/cgi/mailformpro/commons/mfp.extensions.js" charset="UTF-8"></script>
<script type="text/javascript" src="http://example.com/cgi/mailformpro/commons/mailform.js" charset="UTF-8"></script>
<script type="text/javascript" src="http://example.com/cgi/mailformpro/postcodes/get.cgi" id="mfp2zip" charset="UTF-8"></script>

これをheader.phpに書き加えると、当然、すべてのページに出力されてしまいます。

必要なページのみにロードする

該当ページのカスタムフィールドを使うなど、いろんな方法があるのですが、今回は直感的に分かりやすくheader.phpに記述します。
その上でPHPのif文(条件分岐)を使って指定ページにのみ出力してしたいと思います。

<?php if(is_page(array('form','392'))): ?>
<link rel="stylesheet" href="http://example.com/cgi/mailformpro/commons/mailform.css" type="text/css" />
<script type="text/javascript" src="http://example.com/cgi/mailformpro/commons/jQuery.js" charset="UTF-8"></script>
<script type="text/javascript" src="http://example.com/cgi/mailformpro/commons/mfp.lang.js" charset="UTF-8"></script>
<script type="text/javascript" src="http://example.com/cgi/mailformpro/commons/mfp.extensions.js" charset="UTF-8"></script>
<script type="text/javascript" src="http://example.com/cgi/mailformpro/commons/mailform.js" charset="UTF-8"></script>
<script type="text/javascript" src="http://example.com/cgi/mailformpro/postcodes/get.cgi" id="mfp2zip" charset="UTF-8"></script>
<?php endif; ?>

一番最初の(‘form’,’392′)はページスラッグformとページID=392のときに以下を読み込むという指示になります。スラッグとIDどちらでも指定できます。

プラグインでは多くの場合はwp_headで読み込まれるので、こういった制御はできませんが、自分でhead内にカスタマイズして出力させる、かつ、特定ページにしか必要ないという状況では重宝すると思います。

profile image

執筆:R3098

WEBサービス構築・監修が生業です。WordPress 関連では Aurora Heatmap などのプラグイン開発も行っています。サイト運営者の力になりたいと考えます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトは reCAPTCHA によって保護されており、Google のプライバシーポリシー および 利用規約 に適用されます。

reCaptcha の認証期間が終了しました。ページを再読み込みしてください。