[WP Plugin] All in One SEO Pack でアーカイブページにも title, description を表示させる方法
出力されない meta tag を管理画面で設定し、表示させます。
こちらを参考にさせて頂きました。
Documentation
公式ドキュメント「SEO – API」
hookr.io が公式よりも分かりやすいかも。
Advanced Custom Fields との組み合わせサンプル
と、これで終われますが Advanced Custom Fields と組み合わせて設定しましたので memo.
WordPress v4.8
All In One SEO Pack v2.3.14
Advanced Custom Fields v4.4.11
aioseop_title
, aioseop_description
, aioseop_keywords
で add_filter
できます。
管理画面のデータは Advanced Custom Fields が用意している get_field
で取得します。
/**
* Add All in One SEO Pack title tag to archive's <head>
*/
function archive_title( $title ) {
if ( is_archive() && function_exists( 'get_field' ) ) {
$post_category = get_the_category();
$category_id = $post_category[0]->cat_ID;
$value = get_field( 'archive_head_title', 'category_' . $category_id );
$title = $value . ' | ' . get_bloginfo( 'name' );
}
return $title;
}
add_filter( 'aioseop_title', 'archive_title' );
/**
* Add All in One SEO Pack description tag to archive's <head>
*/
function archive_description( $description ) {
if ( is_archive() && function_exists( 'get_field' ) ) {
$post_category = get_the_category();
$category_id = $post_category[0]->cat_ID;
$description = get_field( 'archive_head_description', 'category_' . $category_id );
}
return $description;
}
add_filter( 'aioseop_description', 'archive_description' );
/**
* Add All in One SEO Pack keywords tag to archive's <head>
*/
function archive_keywords( $keywords ) {
if ( is_archive() && function_exists( 'get_field' ) ) {
$post_category = get_the_category();
$category_id = $post_category[0]->cat_ID;
$keywords = get_field( 'archive_head_keywords', 'category_' . $category_id );
}
return $keywords;
}
add_filter( 'aioseop_keywords', 'archive_keywords' );