All in One SEO Packでアーカイブページなどの個別ページにもtitle,descriptionを設定する

All in One SEO Packがアーカイブページにディスクリプションやらのメタタグを出力してくれないなと思ったらどうやらそういう仕様らしい

以下のサイトを参考にさせていただきました。 blog.maromaro.co.jp

追加で設定するためにfunction.php以下を書き足してフィルターを噛ませます。

<?php
function aioseop_title_extention($title){
  if(is_archive()){
    $title = 'タイトル'
  }
  return $title;
}
add_filter('aioseop_title', 'aioseop_title_extention');
?>

特定のカスタム投稿タイプのアーカイブページでのみ適用

自分の場合カスタム投稿のアーカイブページで書き換えたかったので以下のように変更

<?php
function aioseop_title_extention($title){
  if(is_post_type_archive('custom_post')){
    $title = 'タイトル';
  }
  return $title;
}
add_filter('aioseop_title', 'aioseop_title_extention');
?>

管理画面からメタタグを編集できるように拡張

タイトルを管理画面から編集できるようにしたかったので
カスタム投稿タイプと同じslug名の固定ページを作って
そこのAIOSEOの情報を引っ張ってくるように書き換えました。

<?php
function aioseop_title_extention($title){
  if(is_post_type_archive('custom_post')){
    $title = get_post_meta(get_page_by_path('custom_post')->ID, _aioseop_title, true);
  }
  return $title;
}
add_filter('aioseop_title', 'aioseop_title_extention');
?>