【Twenty Seventeenのちょこっとカスタマイズ】カテゴリーのページタイトルから「カテゴリー:」を取りたい


昨日に引き続き、Wordpressの新テーマTwenty Seventeenのカスタマイズについて。

カテゴリーのページタイトルに自動で出力される「カテゴリー:」を取りましょう。簡単です。

カテゴリーの一覧(アーカイブ)ページは、Twenty Seventeenではarchive.phpで出力されています。

問題のページタイトルの部分は

<?php if ( have_posts() ) : ?>
	<header class="page-header">
		<?php
			the_archive_title( '<h1 class="page-title">', '</h1>' );
			the_archive_description( '<div class="taxonomy-description">', '</div>' );
		?>
	</header><!-- .page-header -->
<?php endif; ?>

このあたり。the_archive_title()が曲者です。

アーカイブページを全部このテンプレートで表示するためには必要かも知れないけれど、今回はカテゴリー一覧ページの話なので、

/wp-content/themes/twentyseventeen/archive.php

をコピって来て、category.phpに名前を変更します。そうすると、カテゴリーページのテンプレートだけcategory.phpに振り分けられるので、該当部分を

<?php if ( have_posts() ) : ?>
	<header class="page-header">
             <h1 class="page-title"><?php single_cat_title( '', true ); ?></h1>
             <?php the_archive_description( '<div class="taxonomy-description">', '</div>' );?>
	</header><!-- .page-header -->
<?php endif; ?>

と書き換えればOK!

プラス解説

肝は、single_cat_titleです。

カテゴリーまたはタグアーカイブがクエリされているときに使用すると、ページタイトル(カテゴリー名またはタグ名)を表示または返します。 従って、この関数が使えるのはループの外側においてのみです。

テンプレートタグ/single cat title – WordPress Codex 日本語版

もうひとつ、single_term_titleという便利なタグも3.1から追加されていますね。こっちでも同じように表示出来ますが、カテゴリーのページだとわかっているので、上のケースではsingle_cat_titleでいいと思います。

じゃあ最初からそっち使っておいてよ!って思うかもしれません。でも例えばカテゴリーとタグの名前が被ってたりすると(そんな使い方はナンセンスですが)困るので、ベースの設計としてはthe_archive_titleは必要なものだとは思います。

でもspanタグぐらい挟んで欲しいですよねー。そうしたらCSSでぱっと消せるのになあ。


この記事を書いた人