[WordPress]All in One SEO Packでアーカイブページのタイトルやディスクリプションなどメタ情報を変更する
- 公開日:2019/10/13
この記事は最終更新日から5年以上が経過しています。
WordPressでのサイト運営には欠かせないプラグイン「All in One SEO Pack」ではアーカイブページにディスクリプション(description)を管理画面からの設定では表示することができません。
アーカイブページをnoindexにしている場合はディスクリプションは不要ですが、カテゴリーページとかだとインデックスさせたいこともあると思います。
アーカイブページにディスクリプションを表示したい場合は、functions.phpで以下のようにフックすることで設定できます。
add_filter('aioseop_description', 'custom_aioseop_description');
function custom_aioseop_description($description)
{
if ( 条件 )
{
$description = '変更したいディスクリプション';
}
return $description;
}
具体的にはこんな感じ。
add_filter('aioseop_description', 'custom_aioseop_description');
function custom_aioseop_description($description)
{
if ( is_post_type_archive('カスタム投稿タイプ') && !is_paged() )
{
$description = 'カスタム投稿タイプの一覧ページです';
}
else if ( is_post_type_archive('カスタム投稿タイプ') && is_paged() )
{
global $wp_query;
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$description = 'カスタム投稿タイプ一覧ページの'. $paged. 'ページ目です。';
}
else if ( is_category() && !is_paged() )
{
$description = 'カテゴリー「'. get_queried_object()->name .'」の一覧ページです。';
}
else if ( is_category() && is_paged() )
{
global $wp_query;
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$description = 'カテゴリー「'. get_queried_object()->name .'」一覧ページの'. $paged. 'ページ目です。';
}
else if ( is_archive() && !is_paged() )
{
$description = '投稿の一覧ページです';
}
else if ( is_archive() && is_paged() )
{
global $wp_query;
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$description = '投稿一覧ページの'. $paged. 'ページ目です。';
}
return $description;
}
カテゴリーはカテゴリー名を自動で取得できるようにしています。
また、アーカイブページにはページャを用意していることがほとんだと思うので1ページ目と2ページ目以降のディスクリプションを分けてみました。
同じ要領でタイトル、キーワードやcanonicalも変更することが可能です。
// タイトルを変更
add_filter('aioseop_title', 'custom_aioseop_title');
function custom_aioseop_title($title)
{
if ( 条件 )
{
$title = '変更したいタイトル | '. get_bloginfo('name');
}
return $title;
}
上記でタイトルを任意に変更できます。
変更したいタイトルの後ろに「 | サイト名」が入るようにしてみました。
// キーワードを変更
add_filter('aioseop_keywords', 'custom_aioseop_keywords');
function custom_aioseop_keywords($keywords)
{
if ( 条件 )
{
$keywords = '変更したいキーワード';
}
return $keywords;
}
キーワードはSEOにはもう必要ないという話しもありますが・・・
// canonicalを変更
add_filter('aioseop_canonical_url', 'custom_aioseop_canonical_url');
function custom_aioseop_canonical_url($canonical_url)
{
if ( 条件 )
{
$canonical_url = 'example.com/new_archive_name';
}
return $canonical_url;
}
後は、条件をいかに指定するかがポイントとなりそうです。