All in One SEOで設定した値を取得する方法 - WordPress Plugin
WordPressプラグインである「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」の使っている機能を独自に移植し、プラグインを停止する方向で検討したいですね。
おつかれさまでした。