[WordPress]All in One SEO Packでアーカイブページのタイトルやディスクリプションなどメタ情報を変更する
- 公開日:2019/10/13
この記事は最終更新日から1年以上が経過しています。
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; }
後は、条件をいかに指定するかがポイントとなりそうです。