[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_keywordsadd_filter できます。
管理画面のデータは Advanced Custom Fields が用意している get_field で取得します。

functions.php
/**
 * 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' );