wordpressでページ毎に個別にjavascriptを定義、設定する方法

以前、wordpressで自作のjavascriptを利用する方法を説明しました。(参考ページ:wordpressでjavascript、jQueryを使用する方法)

今回は、ページ毎に異なるjavascriptを設定する方法を説明します。

javascriptファイルが少ない内はいいのですが、サイトの規模が大きくなってきた場合は、何も考えずに追加していくと、javascriptを使わないページにも反映されてしまうため、どんどんとサイトが重たくなってしまいます。

追加の仕方は以下の通りとなります。方法としましては、スラッグ名にて条件分岐する処理となります。

  • functions.phpを以下のように処理分けする。

// javascriptを使用するための定義
function my_scripts()
{
wp_enqueue_script('jquery'); wp_enqueue_script('javascript',get_template_directory_uri().'/js/javascript.js',array('jquery'));

//①get_pageを利用して情報を得る
$page = get_page(get_the_ID());
//②プロパティからスラッグ名を取得する
$slug = $page->post_name;

// スラッグ名で条件分岐
if ($slug == "javascript-test")
{        wp_enqueue_script('javascript_2',get_template_directory_uri().'/js/javascript_2.js',array('jquery'));
}
}
add_action('wp_enqueue_scripts','my_scripts');

上記処理ではスラッグ名が「javascript-test」のときのみ、javascript_2.jsを読み込むようにしています。

この方法により、今後新たなjavascriptファイルが増える場合も、不必要なスクリプトファイルを読み込まずに済みます。

【おまけ】

初め、カスタムフィールド(custom_field)を使って処理分けを考えていたのですが、そもそもfunctions.phpはwordpress内の処理を一元管理する目的で作られているため、functions.php内で処理分けする方法を採用しました。

(custom_fieldを使った場合、header.phpやtemplate-parts内のファイル追加など、少しめんどくさいです。また、head_custom等の定義追加が必要となってきます。)

コメントはお気軽に!

メールアドレスが公開されることはありません。