post_type_archive_title() は、カスタム投稿タイプのアーカイブページに表示されるタイトルを取得または出力するためのテンプレートタグです。カスタム投稿タイプのアーカイブページにおいて、現在表示されている投稿タイプの名前を動的に出力します。
機能の説明
post_type_archive_title() は、カスタム投稿タイプ(例:movies や books など)のアーカイブページにおけるタイトルを表示するテンプレートタグです。カスタム投稿タイプを使用している際、そのアーカイブページのタイトルを取得するために使われます。デフォルトでは投稿タイプのラベル(labels 内の name プロパティ)が表示されますが、プレフィックスを追加することも可能です。
post_type_archive_title();上記のコードは、カスタム投稿タイプのアーカイブページで投稿タイプの名前をそのまま出力します。
使い方の解説
post_type_archive_title() は、カスタム投稿タイプのアーカイブページにおいてタイトルを表示するために使用されます。一般的にこのテンプレートタグは、archive-{post_type}.php というカスタム投稿タイプのアーカイブテンプレート内で利用されます。
引数
$prefix(オプション)
タイトルの前に表示したい文字列。例として、「アーカイブ: 」などのテキストを指定することが可能です。
$display(オプション)
デフォルトでは true で、タイトルを直接出力します。false にすると、タイトルが返されるだけで出力されません。
使用例
<h1><?php post_type_archive_title(); ?></h1>このコードでは、カスタム投稿タイプのアーカイブページで <h1> タグ内にその投稿タイプのタイトルが出力されます。例えば、books というカスタム投稿タイプの場合は「Books」が自動的に出力されます。
一緒に使うことが多い関連タグ
get_post_type_archive_link()
get_post_type_archive_link() は、カスタム投稿タイプのアーカイブページの URL を取得するテンプレートタグです。カスタム投稿タイプの一覧ページのリンクを動的に生成する際に便利です。
使用例
<a href="<?php echo get_post_type_archive_link( 'movies' ); ?>">Movies Archive</a>このコードでは、movies というカスタム投稿タイプのアーカイブページのリンクを出力します。get_post_type_archive_link() を使うことで、カスタム投稿タイプに関連するリンクを動的に生成できるため、メニューや一覧ページでのナビゲーションを簡単に作成できます。
is_post_type_archive()
is_post_type_archive() は、現在表示されているページがカスタム投稿タイプのアーカイブページであるかどうかを確認するテンプレートタグです。このタグは、条件付きタグとして使用され、カスタム投稿タイプのアーカイブページで特定の処理を行いたい場合に利用します。
使用例
if ( is_post_type_archive( 'books' ) ) {
echo 'This is the Books archive page';
}このコードは、表示されているページが books カスタム投稿タイプのアーカイブページであるかどうかをチェックし、該当する場合にメッセージを表示します。
get_the_archive_title()
get_the_archive_title() は、アーカイブページのタイトルを取得するテンプレートタグで、投稿タイプのアーカイブやカテゴリー、タグアーカイブにも使われます。汎用的に使用できるため、複数のアーカイブタイトルを扱う場合に便利です。
使用例
<h1><?php echo get_the_archive_title(); ?></h1>このコードは、アーカイブページのタイトルを動的に出力します。カスタム投稿タイプアーカイブの他、カテゴリーアーカイブなどにも使用できるため、柔軟なタイトル表示に対応します。
追加情報を取得したい場合
get_post_type_object()で取得できる情報
get_post_type_object() は、指定された投稿タイプに関連するオブジェクトを取得し、その情報を利用するテンプレートタグです。この関数を使用することで、投稿タイプに関する様々なデータ(ラベルや公開状態、機能の有無など)を取得できます。
使用例
$post_type = get_post_type_object( 'books' );
echo $post_type->labels->name; // 投稿タイプの名前を出力このコードは、books というカスタム投稿タイプのオブジェクトを取得し、その投稿タイプの名前(ラベル)を出力しています。ラベル以外にも、サポートされている機能や公開状態など、投稿タイプに関する様々な情報を扱うことができます。
出力できる情報
- name: 投稿タイプの名前(例: “Books”)
- slug: 投稿タイプのスラッグ(URL に使用される名前)
- public: 公開状態(公開・非公開)
- supports: サポートしている機能(例: タイトル、エディター、カスタムフィールドなど)
使用する事で想定されるトラブル
タイトルが表示されない
カスタム投稿タイプのアーカイブが有効化されていない場合、post_type_archive_title() は動作しません。
解決方法
カスタム投稿タイプの登録時に、has_archive オプションを true に設定する必要があります。
register_post_type( 'books', array(
'has_archive' => true,
) );期待するプレフィックスが表示されない
post_type_archive_title() に $prefix 引数を渡していない、または $display の値が false になっている可能性があります。
解決方法
$prefix を正しく設定し、タイトルを出力させたい場合は $display を true に設定します。
Q&A
まとめ
post_type_archive_title() は、カスタム投稿タイプのアーカイブページで使用するタイトル表示用のテンプレートタグです。このタグを利用することで、カスタム投稿タイプに合わせたアーカイブページタイトルを簡単に出力できます。get_post_type_archive_link() や is_post_type_archive() などの関連タグと併用することで、カスタム投稿タイプのアーカイブページを効果的に操作・表示できます。
コメント