[WordPress General] Document Title の出力とカスタマイズをする

add_theme_support( ‘title-tag’ ) をカスタマイズします。

[markdown]
## 利用するタグ

### before

以前のバージョンでは `wp_title` を利用していました。

> * [テンプレートタグ/wp title – WordPress Codex 日本語版](https://wpdocs.osdn.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0/wp_title)

“`php
<?php wp_title( '|', true, 'right' ); bloginfo('name'); ?>
“`

### after

WordPress v4.1 から `add_theme_support( ‘title-tag’ );` を利用することで、`wp_head()` に簡単出力できるようになりました。

> * [タイトルタグ – WordPress Codex 日本語版](https://wpdocs.osdn.jp/%E3%82%BF%E3%82%A4%E3%83%88%E3%83%AB%E3%82%BF%E3%82%B0)

“`php
add_theme_support( ‘title-tag’ );
“`

## コード

– セパレーターの変更。
– タイトルにカテゴリーを追加。

“`php:functions.php
add_theme_support( ‘title-tag’ );
/**
* ドキュメントの投稿タイトルのセパレーターを変更する
*
* @return string The filtered title.
*/
function custom_title_separator() {
$sep = ‘|’;
return $sep;
}
add_filter( ‘document_title_separator’, ‘custom_title_separator’ );
/**
* ドキュメントの投稿タイトルにカテゴリを追加する
*
* @param string $title Default title text for current view.
* @return string The filtered title.
*/
function add_category_to_the_document_title( $title ) {
if ( is_single() ) {
$categories = get_post_categories();
$title[‘title’] = ‘[‘ . $categories . ‘] ‘ . $title[‘title’];
}
return $title;
}
add_filter( ‘document_title_parts’, ‘add_category_to_the_document_title’, 10, 1 );
/**
* 投稿の所属するカテゴリを求める
*
* @param string $sep Optional separator.
* @return string The categories.
*/
function get_post_categories( $sep = ‘, ‘ ) {
$category_array = array_map( create_function( ‘$category’, ‘return $category->name;’ ), get_the_category() );
return join( $sep, $category_array );
}
“`

## 補遺

> * [WordPress4.4以降でtitleタグをカスタマイズする方法 | Glatch(グラッチ) – 夫婦で活動するフリーランスWeb制作ユニット](http://glatchdesign.com/blog/web/wordpress/1070)
[/markdown]