アーカイブページの
タイトル色々

  • CAUTION
  • 1年以上
  • 古い記事

こんにちは。

記事がばーっと表示されるページを「一覧ページ」と呼ぶか「アーカイブページ」と呼ぶか毎回悩む今日この頃です。

アーカイブページはありとあらゆるWebサイトにおいてほぼ欠かせない存在だと思います。
という事は、そんなアーカイブページのタイトルを表示する関数はありとあらゆるWebサイトにとって欠かせない存在と言えます。

今回はありとあらゆるWebサイトに欠かせないアーカイブページのタイトルについて学んだ事を綴っていきます。

タイトルの表示・取得

the_archive_title()はアーカイブのタイトルを表示します。

このブログにはカテゴリー毎のアーカイブページがありますが、そちらでもこの関数を使用しています。

「WordPress」カテゴリーのアーカイブページで使用すると「WordPress」と表示されます

パラメータ

$before(文字列)
…タイトルの直前に出力する文字列です。

$after(文字列)
…タイトルの直後に出力する文字列です。

使用例

カテゴリー名が「ブログ」のアーカイブページタイトルを<h2>タグで囲って表示します。

the_archive_title('<h2>', '</h2>');

HTMLソースコードで以下の様に表示されます。

<h2>カテゴリー: ブログ</h2>

タイトルの取得

タイトルを表示せずに取得する場合はget_the_archive_title()を使用します。

以下の例では$titleにタイトルを代入します。

$title = get_the_archive_title();

要らない文字の削除

the_archive_title()を一度使用すると分かるのですが、タイトル名の前に「カテゴリー: 」や「月: 」などあまり表示したくなさそうな文字列が付いてきます。

これらは関数の引数で表示・非表示を指定できません。

タイトル名の前の「カテゴリー: 」や「月: 」などが不必要な場合はフィルターフックを使用します。

functions.phpに以下を追記↓

add_filter( 'get_the_archive_title', function($title){
	if(is_category()){ // カテゴリーページ
		$title = single_cat_title('', false);
	} elseif(is_tag()){ // タグページ
		$title = single_tag_title('', false);
	} elseif(is_tax()){ // タクソノミーページ
		$title = single_term_title('', false);
	} elseif(is_post_type_archive()){ //カスタム投稿タイプアーカイブページ
		$title = post_type_archive_title('', false);
	}
    return $title;
});

まとめ

今回は本館でも使用している関数やフィルターフックについて綴っていきました。

タイトルについては、アーカイブページのテンプレートファイルに直接書いて表示する方法もあると思いますが、関数を使用すれば使い回しもできてコードも短くなり便利だと思います。

この記事を読んでいただきありがとうございました。
あなたのお役に立てれば幸いです。ではまた。