WordPress:All in One SEO Pack使用時にアーカイブページのtitleやdescriptionを設定・変更する方法

WordPress:All in One SEO Pack使用時にアーカイブページのtitleやdescriptionを設定・変更する方法

WordPressのtitleやdescriptionを設定するプラグインのひとつとして有名な「All in One SEO Pack」使用時に、アーカイブページのtitleやdescriptionを設定したり任意のものに変更する方法です。
titleに関しては管理画面から設定可能で、descriptionに関しては意図的に設定されていないとは思いますが、自分が設定したい形を指定できないとかアーカイブページにもdescriptionを出力する必要があるときは、以下の方法で設定・変更することができます。

※紹介している内容は、All In One SEO Pack Ver 2.3.12.2.1 で検証した内容になります。
「All In One SEO Pack」についての基本的なインストール・使用方法については割愛しているので、使用したことない場合などはプラグインの詳細も含め「All in One SEO Pack — WordPress Plugins」で確認してください。

descriptionを設定する

All In One SEO Packは、TOPページで設定したいものはプラグインの設定画面、投稿や固定ページについては各編集ページでそれぞれdescriptionを設定することができますが、例えばカテゴリーや日付などのアーカイブページについては設定できる項目が用意されておらず、プラグインを有効化していてもアーカイブページにはdescriptionが出力されません。
All In One SEO Packを使用しており、アーカイブに任意のdescriptionを出力させたいというときは、functions.phpへ下記のように記述することで出力させることができます。

functions.php.php

add_filter( 'aioseop_description', 'custom_aioseop_description' );
function custom_aioseop_description( $description ) {
  if ( is_archive() ) {
    $description = 'archive description here ...';
  }
}

上記でハイライト表示している部分を任意のものに変更後アーカイブページを確認すると、デフォルトでは出力されていなかったdescriptionが出力されているのを確認できます。
ただ、このコードの場合はすべてのアーカイブページが対象となっているので、例えばカテゴリーや日付などのアーカイブでも同じものが出力されます。
カテゴリーアーカイブでは○○、日付アーカイブでは△△のように、それぞれで違うものを設定したい場合は下記のように条件分岐を増やして記述します。

functions.php.php

add_filter( 'aioseop_description', 'custom_aioseop_description' );
function custom_aioseop_description( $description ) {
  if ( is_category() ) {
    $description = 'category archive description here ...';
  } else if ( is_date() ) {
    $description = 'date archive description here ...';
  } else if ( is_archive() ) {
    $description = 'other archive description here ...';
  }
  return $description;
}

titleを変更する

titleはプラグインを有効化するだけでもよく見る感じで出力してくれますし、他の形にしたければ設定画面で変更することも可能ですが、設定画面で指定できないような形にしたい場合などは、functions.phpへ下記のように記述することでtitleの内容を任意のものに変更することができます。
下記はアーカイブページのtitleを変更というものになるので、先ほどと同様でもっと細かく変更させたいときや別ページを設定したいときは条件を変更すれば実装できます。

functions.php.php

add_filter( 'aioseop_title', 'custom_aioseop_title' );
function custom_aioseop_title( $title ) {
  if ( is_archive() ) {
    $title = 'page title here ...';
  }
  return $title;
}

canonicalを変更する

こちらも変更する機会はそこまで多くないと思いますが、変更したい場合はfunctions.phpへ下記のように記述することで任意のものに変更することができます。
同じく下記はアーカイブページのcanonicalを変更というものになり、もっと細かく変更させたいときや別ページを設定したいときは条件を変更すれば実装できます。

functions.php.php

add_filter( 'aioseop_canonical_url', 'custom_aioseop_canonical_url' );
function custom_aioseop_canonical_url( $canonical ) {
  if ( is_archive() ) {
    $canonical = 'example.com/archive/';
  }
  return $canonical;
}

Close the search window,
please press close button or esc key.