All in One SEOで設定した値を取得する方法 - WordPress Plugin

WordPressプラグインである「All in One SEO」で設定した値を取得する方法です。

All in One SEOで設定した値を取得する方法

「All in One SEO」は固定ページや投稿に title, description, keywords を設定し、動的に差し替えたり、メタ情報を挿入してくれる WordPress のプラグインです。

もちろん、このサイトでも利用しています。設定方法は多くのサイトで紹介されていますので、調べてみてください。

ここでは All in One SEOで設定した title, description, keywords を取得する方法 を紹介します。


All in One SEOとは?

「All in One SEO」とは、あらかじめ設定したTDK(title, description, keyword)を動的に差し替えたり、メタ情報を挿入してくれる便利なWordPressプラグインです。他にもXMLサイトマップを作ってくれたり、SNS向けのメタ情報を差し込んでくれたりと、SEOに関する特別な知識がなくても設定できるのが特徴です。このページを見ている皆さんなら導入済でしょうから、説明は不要ですかね。

2020年12月に「All in One SEO Pack」がメジャーアップデートされ、「All in One SEO」と名称が変更されました。画面のUIも変更になり、個人的には若干使いにくくなった感が否めません。フィルターフックに変更が入ったりもして、なかなか影響が出ています。

以降は、3.0系と4.0系でのTDK値の取得方法を紹介します。

All in One SEOで設定した値を取得する方法

それでは早速「All in One SEOで設定した値を取得する」コードを見てみましょう。

3.0系では、第2引数に _aioseop_title, _aioseop_description, _aioseop_keywords のいづれかを設定します。

4.0系では、第2引数に _aioseo_title, _aioseo_description, _aioseo_keywords のいづれかを設定します。

4.0系では「aioseop_」の部分を「aioseo_」に変更すること。

get_post_meta関数を使う

まずは「get_post_meta」関数を使った値取得の方法です。

バージョン3.0系の場合

title
(タイトル)
get_post_meta($post->ID, _aioseop_title, true);
description
(概要)
get_post_meta($post->ID, _aioseop_description, true);
keywords
(キーワード)
get_post_meta($post->ID, _aioseop_keywords, true);

バージョン4.0系の場合

title
(タイトル)
<?php echo get_post_meta($post->ID, _aioseo_title, true); ?>
description
(概要)
<?php echo get_post_meta($post->ID, _aioseo_description, true); ?>
keywords
(キーワード)
<?php echo get_post_meta($post->ID, _aioseo_keywords, true); ?>

「$post->ID」が使えない環境では「get_the_ID()」に置き換えてください。

get_post_custom関数を使う

次は「get_post_custom」関数を使った値取得の方法です。

バージョン3.0系の場合

title
(タイトル)
get_post_custom()['_aioseop_title'][0];
description
(概要)
get_post_custom()['_aioseop_description'][0];
keywords
(キーワード)
get_post_custom()['_aioseop_keywords'][0]

バージョン4.0系の場合

title
(タイトル)
get_post_custom()['_aioseo_title'][0];
description
(概要)
get_post_custom()['_aioseo_description'][0];
keywords
(キーワード)
get_post_custom()['_aioseo_keywords'][0]

活用方法

バージョン3.0系で書いた概要は、バージョン4.0系にアップデートしても残っています。逆をいえば、記事を更新をしない限り「_aioseop」でしか取得できません。なので、下記のようなコードを書いて対応することをおすすめします。

/**
 * All in One SEOの概要を取得
 */
function get_aioseo_description() {
  // バージョン4.0の値が設定されていなければ、バージョン3.0の値を取得する
  return ( empty(get_post_meta(get_the_ID(), '_aioseo_description', true)) ) ? get_post_meta(get_the_ID(), '_aioseop_description', true) : get_post_meta(get_the_ID(), '_aioseo_description', true);
}

まとめ

All in One SEOで設定した「title」「description」「keywords」を取得する方法を紹介しました。

便利なWordPressプラグインであった「All in One SEO」も、バージョン4.0以降は正直使いにくくなった気がする。なんといっても遅いし、謎のログを膨大にテーブルに吐いてるし。

将来的には「All in One SEO」の使っている機能を独自に移植し、プラグインを停止する方向で検討したいですね。

おつかれさまでした。

この記事がお役に立ちましたら シェア をお願いいたします。