エンキュー!テンキュー!!
寒いですね季節も心も。
テーマを作る時に「あれどうやって書くんだったっけ」とよく忘れる事なのでメモします。
<head></head>内にcssやjsファイルを読み込む時はheader.phpに直接書かず、functions.phpを使ってenqueueで読み込みます。
ついでにデフォルトのjQueryライブラリは読み込まず、google CDNからライブラリを読む様にしておきます。
まずは結果
functionsに下記を記入。
function add_headfiles() { // WordPressデフォルトのjquery.jsを読み込まない wp_deregister_script('jquery'); // Google からjQueryライブラリ3.2.1を読み込む wp_enqueue_script('jquery','https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js'); //テーマフォルダ内のcommon.jsを読み込み</body>前に置く wp_enqueue_script('jsc', get_template_directory_uri().'/js/common.js', array(), 'false', 'true' ); // テーマフォルダ内のprint.cssを読み込む wp_enqueue_style('print', get_template_directory_uri() . '/css/print.css', "", 'false', 'print' ); } add_action('wp_enqueue_scripts', 'add_headfiles');
これでこうなります。
- WordPressデフォルトのjquery.jsを読み込まず、Google CDNのjQueryライブラリを読み込む
- 「wp-content/themes/テーマフォルダ/js/common.js」を読み込む
- 「wp-content/themes/テーマフォルダ/css/print.css」を読み込む
HTML出力内容(いろいろ省略)
<html lang="ja"> <head> <link rel='stylesheet' id='sample-style-css' href='https://example.com/wp-content/themes/sample/style.css' type='text/css' media='all' /> <link rel='stylesheet' id='print-css' href='https://example.com/wp-content/themes/sample/css/print.css' type='text/css' media='print' /> <script type='text/javascript' src='https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js'></script> </head> <body> コンテンツの中身いろいろ <script type='text/javascript' src='https://example.com/wp-content/themes/sample/js/common.js'></script> </body> </html>
各詳細
デフォルトのjQueryライブラリは読み込まず、google CDNからライブラリを読む
function add_headfiles() { // WordPressデフォルトのjquery.jsを読み込まない wp_deregister_script('jquery'); // Google からjQueryライブラリ3.2.1を読み込む wp_enqueue_script('jquery','https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js'); } add_action('wp_enqueue_scripts', 'add_headfiles');
提供されているGoogleのバージョン番号確認はこちら
「Google Hosted Libraries」
CDNに関してはこちらのサイトがとてもわかりやすかったです。
外部リンク
JSファイルの読み込み
function add_headfiles() { //テーマフォルダ内のcommon.jsを読み込み</body>前に置く wp_enqueue_script('jsc', get_template_directory_uri().'/js/common.js', array(), 'false', 'true' ); } add_action('wp_enqueue_scripts', 'add_headfiles');
関数リファレンス/wp enqueue script(WordPress Codex)によりますと、jsファイルの読み込みはこちらの形式で記述します。
<?php wp_enqueue_script( $handle, $src, $deps, $ver, $in_footer ); ?>
$handle | スクリプトのハンドル。?が含まれていると?より後ろの部分はURLの後ろに追加される ※例えばハンドルが「jsc?20171120」だったらjsファイルのURL末尾に「/js/common.js?amp;20171120’」と付きます。 |
---|---|
$src | スクリプトの URL |
$deps | このスクリプトより前に書き込まれて欲しいスクリプトがあれば、そのスクリプトのハンドルを記述しておく |
$ver | スクリプトのバージョン番号。指定しなければfalseになる |
$in_footer | trueの場合、 </body>の前に配置される。(通常はfalseで<head> に置かれる) |
CSSの読み込み(style.cssの後に読み込まれる)
function add_headfiles() { // テーマフォルダ内のprint.cssを読み込む wp_enqueue_style('print', get_template_directory_uri() . '/css/print.css', "", 'false', 'print' ); } add_action('wp_enqueue_scripts', 'add_headfiles');
関数リファレンス/wp enqueue style(WordPress Codex)によりますと、こちらの形式で記述します。
<?php wp_enqueue_style( $handle, $src, $deps, $ver, $media ); ?>
$handle | CSSのハンドル。?が含まれていると?より後ろの部分はURLの後ろに追加される |
---|---|
$src | CSSの URL |
$deps | このCSSより前に読み込まれて欲しいCSSがあれば、そのハンドルを記入しておく |
$ver | CSSのバージョン番号。初期値はfalse |
$media | 初期値は’all’(’all’、’screen’、’handheld’、’print’) |
気をつけたいこと
ハンドルに「jquery」とか「common」とかデフォルトで使われているものがあると表示されなくなるので注意が必要。
コメントを残す