昨日に引き続き、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でぱっと消せるのになあ。