BLOG
【WordPress】プラグインなし!ページごとにdescriptionを設定する方法
WordPressでページごとにdescriptionを設定する方法
WordPressサイトにおいて、トップページと投稿ページでは表示させたいmeta description(メタディスクリプション)の内容は、大抵の場合異なります。
ちなみにmeta description(メタディスクリプション)とは、検索結果に表示される各Webページの説明文のことです。
各ページに1つずつ記載しても良いですが、あまりにも手間な作業なのでfunctions.phpに記述を加えてサイト全体に反映させます。
- ページごとに適切なmeta descriptionを設定したい
- プラグインを使わずに設定コードを自作したい
これらの要望をお持ちの方に対して、
「プラグインなしでページごとにmeta descriptionを設定する方法」についてコード付きで解説します。
プラグインは使用しません
世の中に大量にあるプラグインを使えば、ページごとに適切なdescriptionを設定することも簡単にできますが、セキュリティや表示速度の観点から、使うプラグインは必要最小限に抑えるべきです。
同じような考えをお持ちの方のために、今回は一切プラグインを使いません。
meta descriptionの設定方法
meta descriptionの設定する関数を作る
functions.phpに以下を記述します。
function meta_description() {
// 投稿または固定ページの場合
if(is_single() || is_page()) {
// 抜粋入力欄が空欄ではない場合
if(has_excerpt()) {
$description = get_the_excerpt();
}
// 抜粋入力欄が空欄の場合
else {
$description = '// 抜粋が設定されていない場合に表示させたいmeta descriptionを記述 //';
}
} else {
$description = '// 投稿または固定ページ以外(トップページなど)で表示させたいmeta descriptionを記述 //';
}
return $description;
}
descriptionの中身の内容は好きなように編集してください。
投稿ページと固定ページ以外のページにも、個別のメタディスクリプションを設定したい場合は、適宜条件分岐を増やすことで対応可能です。
headタグ内に記述する
上で作った関数“meta_description”を、headタグ内に記述します。
多くの場合、headタグの内容はheader.phpにまとめられていると思いますので、header.phpに他のメタタグと一緒に以下を記述します。
<meta name="description" content="<?php echo esc_html(meta_description()); ?>">
これだけで完了です。
あとはディベロッパーツールなどで、記述されているか確認してみましょう。
ただし、固定ページについてはデフォルトで「抜粋」の項目は表示されていないので、以下の設定を行ってください。
固定ページで抜粋を有効化する
functions.phpに以下を記述します。
add_action('init', function() {
add_post_type_support('page', 'excerpt');
}
これで固定ページの編集ページに「抜粋」の項目が現れているはずです。
もし見当たらなければ、編集ページ右上の「表示オプション」内の「抜粋」にチェックを入れてください。
おわりに
今回編集したファイルはfunctions.phpとheader.phpの2つだけで、かつ記述したコードも対して長くありません。
これぐらいであれば、プラグインを使わずに自作することのデメリットもほぼ皆無です。
メタディスクリプションとあわせて、各ページに適切なタイトルタグを自動で挿入する方法も別記事にて解説しています。