はじめに
カスタム投稿タイプ(custom post type)や固定ページ(static page)について、タイトルを専用の表現にしたい事があります。今回、テンプレートファイル (archive.php や single.php、page.php など) に直接記述する方法を紹介します。
カスタマイズしたタイトル文字列を返す関数を定義して、これを wp_titleフィルターに追加します。
私はテンプレートタイプと投稿タイプを接頭辞として、「_<テンプレートタイプ>_<投稿タイプ>_wp_title()」のような命名規則で定義するようにしています。他のテンプレートと重複しないようにするためです。
title タグの内容を変更するソースコード
下記コードを、目的のテンプレートに追記します。get_header() のすぐ上がおすすめです。
<?php
/**
* custom title for title-tag.
*/
function _archive_sample_wp_title() {
$post_type_obj = get_post_type_object( 'sample' );
return 'サンプル一覧 - ' . $post_type_obj->label . ' - My WordPress';
}
add_filter( 'wp_title', '_archive_sample_wp_title' );
get_header(); ?>
この例の場合、カスタム投稿タイプの名称が「サンプル」だったとすると、title タグには
「サンプル一覧 – サンプル – My WordPress」
が表示されます。