夫婦でやってるWeb屋です。

2017-01-17

【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でぱっと消せるのになあ。

この記事を書いた人

mimi

主に書いている人。愚痴が多いです。悲観的。 フロントエンド側のアレコレをイジるのが好きみたいです。 編み物と写真と珈琲とオヤツ作りが趣味。 イラストも、最近描いてないけど描きます。 Twitter