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()
などの関連タグと併用することで、カスタム投稿タイプのアーカイブページを効果的に操作・表示できます。
コメント