[WP Plugin] All in One SEO Pack でアーカイブページにも title, description を表示させる方法

出力されない meta tag を管理画面で設定し、表示させます。

[markdown]
こちらを参考にさせて頂きました。

> * [All in One SEO Pack が出力するtitle、description、keyword、canonicalを書き換える方法まとめ | Maromaro Blog](https://blog.maromaro.co.jp/archives/1362)

## Documentation

公式ドキュメント「SEO – API」

> * [Documentation | Semper Plugins](https://semperplugins.com/documentation/)

hookr.io が公式よりも分かりやすいかも。

> * [all | All In One Seo Pack | hookr.io](http://hookr.io/plugins/all-in-one-seo-pack/2.3.9.2/#index=f)

## Advanced Custom Fields との組み合わせサンプル

と、これで終われますが Advanced Custom Fields と組み合わせて設定しましたので memo.

“`prettyprinted
WordPress v4.8
All In One SEO Pack v2.3.14
Advanced Custom Fields v4.4.11
“`

> * [[WordPress] Advanced Custom Fields プラグインで WordPress のカテゴリーにカスタムフィールドを追加する | deadwood](https://www.d-wood.com/blog/2017/07/13_9079.html)

`aioseop_title`, `aioseop_description`, `aioseop_keywords` で `add_filter` できます。
管理画面のデータは Advanced Custom Fields が用意している `get_field` で取得します。

“`php:functions.php
/**
* Add All in One SEO Pack title tag to archive’s
*/
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
*/
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
*/
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’ );
“`
[/markdown]