当サイトのWordPressテーマを自作の「4536」に変更するために、せっせとカスタマイズをしているんですが、ようやく、ある重要な問題がクリアになりました。
それは、SEOプラグイン「All in One SEO Pack」で設定したキーワードやディスクリプションの値を引き継ぐことです。
テーマ変更後は、All in One SEO Packを削除して、テーマの機能でSEO対策をしていくため、今までの設定値を取得しなければいけないんですが、なぜか上手くいかずに後回しにしていました。
で、再度挑戦したところ、すごく簡単な方法な方法を発見したので、今回はそれをみなさんにご紹介します!
All in One SEO Packの設定値を取得・出力する方法
各種設定値は以下の方法で取得・出力することができます。
一度取得してから出力という形になるので、「All in One SEO Packで設定している場合はそれを読み込む」などの条件分岐もやりやすいかと思います。
タイトル
タイトルの設定値はこちら。
get_post_custom()['_aioseop_title'][0]
出力サンプルコード
<title><?php echo get_post_custom()['_aioseop_title'][0]; ?></title>
キーワード
キーワードの設定値はこちら。
get_post_custom()['_aioseop_keywords'][0]
出力サンプルコード
echo '<meta name="keywords" content="'.get_post_custom()['_aioseop_keywords'][0];.'">';
ディスクリプション
ディスクリプションの設定値はこちら。
get_post_custom()['_aioseop_description'][0]
出力サンプルコード
echo '<meta name="description" content="'.get_post_custom()['_aioseop_description'][0].'">';
noindex
noindexの設定値はこちら。
get_post_custom()['_aioseop_noindex'][0]
nofollow
nofollowの設定値はこちら。
get_post_custom()['_aioseop_nofollow'][0]
noindexとnofollowの設定値を使った条件分岐
noindexとnofollowはそのまま出力しても、「on」という値が出力されるだけなので、基本的には下記のように条件分岐の値として使えばいいでしょう。
function 4536_seo_meta() {
$aioseop_noindex = $custom['_aioseop_noindex'][0];
$aioseop_nofollow = $custom['_aioseop_nofollow'][0];
if ( $aioseop_noindex && $aioseop_nofollow ) { // 両方チェックしている場合
echo '<meta name="robots" content="noindex,nofollow">';
} elseif ( $aioseop_noindex && !$aioseop_nofollow ) { // noindexだけチェックしている場合
echo '<meta name="robots" content="noindex,follow">';
} elseif ( !$aioseop_noindex && $aioseop_nofollow ) { // nofollowだけチェックしている場合
echo '<meta name="robots" content="nofollow">';
}
}
当初つまづいたポイント
All in One SEO Packの設定値を取得・出力する方法として、
<?php echo get_post_meta($post->ID, _aioseop_title, true); ?>
というコードをよく見かけますが、サイト上には出力できるのに、なぜか肝心のメタタグには出力できなかったため、つまづきました。
で、その後に、$post->IDをget_the_ID()にしたところ上手くいったんですが、最初に紹介した方法の方が簡単だったので、そちらで設定値を取得・出力するようにしました。
以上、ご参考までに!(`・ω・´)ゞ