東京都府中市、九段下のWEB制作会社Maromaroのブログです

2016.02.29

hoshida

All in One SEO Pack が出力するtitle、description、keyword、canonicalを書き換える方法まとめ

こんにちは!使用頻度が高いコードなのに意外とまとまった記事が無いからまとめておくか協会会長こと、Maromaroのhoshidaです。

All in One SEO Packではアーカイブページにメタタグが出ない

WordPressでサイトを作る際、SEO対策プラグインAll in One SEO Packを使用するケースは多いと思いますが、メタ情報など細かくコントロールしたい場合には少し癖のあるプラグインです。

特に困るのが、タグ一覧やカテゴリ一覧などのアーカイブページではディスクリプションなどのメタタグを出力してくれない点です。

SEO的に一覧ページはクロールが巡回してくれない方がいいのでそのような仕様になっているのですが、一覧ページが固定ページのように機能していたり、そのページをユーザーがfacebookやtwitterなどのsnsで共有してしまう可能性があるなど、メタタグを出力したいケースはままあります。

All in One SEO Pack が出力するメタ情報を書き換えるコード

そのような場合には、以下のコードを functions.php に記述し、出力されるコードを強制的に書き換えます。

先に補足と解説

All in One SEO Pack が用意しているフィルターフックを使用しています。

各2行目の「if(is_archive()){…」の部分は任意の条件分岐を指定してください。現状はアーカイブページだった場合に書き換えるようにしています。

各3行目の部分で書き換え後の内容を記述しています。現在は固定値を入れていますが、管理画面のどこかで入力している値を引っ張ってくるのが良いかと思います。専用のカスタムフィールドを作るのも手ですね。

titleを書き換える

function my_title($title){
  if(is_archive()){
    $title = 'ページタイトルを入力';
  }
  return $title;
}
add_filter('aioseop_title', 'my_title');

the_title()で出力される結果も変わります。

descriptionを書き換える

function my_description($description){
  if(is_archive()){
    $description = 'ディスクリプションを入力';
  }
  return $description;
}
add_filter('aioseop_description', 'my_description');

keywordsを書き換える

function my_keywords($keywords){
  if(is_archive()){
    $keywords = 'キーワードを入力';
  }
  return $keywords;
}
add_filter('aioseop_keywords', 'my_keywords');

canonicalを書き換える

function my_canonical($canonical){
  if(is_archive()){
    $canonical = 'カノニカルURLを入力';
  }
  return $canonical;
}
add_filter( 'aioseop_canonical_url', 'my_canonical');

title、description、keyword 確認はこちら

なお、サイトの title、description、keyword をチェックするときは、こちらの Google chrome アドオンを利用すると便利で効率がいいです!
title,description,keyword等を確認するChrome拡張機能! | Maromaro Blog

それでは皆さん素敵なSEOライフを~