WordPressを使っていると、headタグの中にコードを追加したいことがあります。
通常であれば、テーマの中のheader.phpのheadタグ内に追記をするのですが、Wordpressでは、functions.phpを使って簡単にタグを追加することができます。
その手順について解説しています。
headタグに新しくコードを追加する簡単な方法
functions.phpを開く
まずは、functions.phpを開きます。FTPソフトなどなんでもいいのですが、今回はちょっとしたコードを追記するのみなので、Wordpressの管理画面からアクセスします。
「外観」→「テーマエディタ」→「テーマのための関数(functions.php)」をクリックします。
fucntions.phpが開き編集できる状態になります。
コードの追記
functions.phpを開いたら一番下に以下のコードを追記します。
コメントアウトでここにHTMLタグを追加
と記述してあるところに、出力したいタグを入力してください。
//headerに追加するコード
function add_meta_in_head() {
$add_codes = <<<EOT
<!-- ここにHTMLタグを追加 -->
EOT;
echo $add_codes;
}
add_action( 'wp_head', 'add_meta_in_head');
コードを記述したら保存をお忘れなく。
WordPress上のエディタの場合は、「ファイルを更新」をクリックします。
※コードに文法エラーがあると更新できません。
例
例えばmetaタグやlinkタグを追加する場合は以下のようになります。
//headerに追加するコード
function add_meta_in_head() {
$add_codes = <<<EOM
<meta name="test" content="output by functions.php" />
<link rel="stylesheet" href="test-style.css" type="text/css">
EOM;
echo $add_codes;
}
add_action( 'wp_head', 'add_meta_in_head');
ブラウザでソースコードを確認すると、headタグ内にきちんと追記されています。
コード解説
補足です。コードの処理が何をしているかについて解説しています。
//headerに追加するコード
function add_meta_in_head() {
$add_codes = <<<EOT
<!-- ここにHTMLタグを追加 -->
EOT;
echo $add_codes;
}
add_action( 'wp_head', 'add_meta_in_head');
add_action関数
この処理のコアともいえるのがadd_action関数です。これは、指定したタイミングで、指定した関数を実行する処理です。
add_action関数の基本構文は以下になります。
add_action( $hook, $function_to_add, $priority, $accepted_args );
- $hook: どのタイミングで処理を実施するか
- $function_to_add: 実行する関数
- $priority: 処理実行の優先度。少ない数ほど先に実行される。初期値は10
- $accepted_args: 関数に渡せる引数の数
$hookと$function_to_addは必須です。それ以外はオプションになります。
wp_headアクションフック
add_action関数の中でどのタイミングで実行するかを指定するフックには、wp_headを指定しています。
これは、テンプレートのwp_head関数が実行されるタイミングで呼び出されるものです。
wp_head関数は<head></head>
セクションの中に記述されます(基本的にはhead閉じタグ直前)。
add_meta_in_head
add_actionで実行する関数はadd_meta_in_head関数になります。これは上のfunctionで自分で定義したものです。関数名は任意です。
function add_meta_in_head() {
$add_codes = <<<EOT
<!-- ここにHTMLタグを追加 -->
EOT;
echo $add_codes;
}
add_act
関数の処理は、変数 $add_codes に入力した値を、echoで出力しているだけです。
<<<EOT
変数の後ろの <<<EOT
や EOT;
はPHPの記述でヒアドキュメント構文(Hear Doc.)と呼ばれるものです。
変数の中身が複数行になる場合に、<<<EOT
と EOT;
で囲まれた部分を変数に代入することができます。
なお、EOTの部分をID(識別ID)といいます。スペースなどを入れない連続した文字で、開始ID名と終了ID名があっていれば、ID名はなんでもいいです。
<?php
class foo {
$bar = <<<識別ID
bar
識別ID;
}
?>
よく使われるのは、EOT, EOF, EOM, EODなどです。
ID名 | 内容 |
---|---|
EOT | End of Text |
EOF | End of File |
EOM | End of Message |
EOD | End of Document |