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

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

Contents

利用するタグ

before

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

<title><?php wp_title( '|', true, 'right' ); bloginfo('name'); ?></title>

after

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

add_theme_support( 'title-tag' );

コード

  • セパレーターの変更。
  • タイトルにカテゴリーを追加。
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 );
}

補遺