Photosynthesic blog

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

2017-01-17

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

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

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

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

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

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

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

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

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

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

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

と書き換えればOK!

プラス解説

肝は、single_cat_titleです。

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

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

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

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

この記事を書いた人

mimi

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