MENU

post_type_archive_title()

post_type_archive_title() は、カスタム投稿タイプのアーカイブページに表示されるタイトルを取得または出力するためのテンプレートタグです。カスタム投稿タイプのアーカイブページにおいて、現在表示されている投稿タイプの名前を動的に出力します。

目次

機能の説明

post_type_archive_title() は、カスタム投稿タイプ(例:moviesbooks など)のアーカイブページにおけるタイトルを表示するテンプレートタグです。カスタム投稿タイプを使用している際、そのアーカイブページのタイトルを取得するために使われます。デフォルトでは投稿タイプのラベル(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 を正しく設定し、タイトルを出力させたい場合は $displaytrue に設定します。

Q&A

post_type_archive_title() はどのテンプレートで使用しますか?

主にカスタム投稿タイプのアーカイブテンプレート(例: archive-{post_type}.php)で使用されます。例えば、books カスタム投稿タイプのアーカイブテンプレートファイルは archive-books.php となります。

投稿タイプのアーカイブを有効にするにはどうすればいいですか?

投稿タイプの登録時に、'has_archive' => true を設定する必要があります。この設定を行うことで、そのカスタム投稿タイプのアーカイブページが有効化されます。

プレフィックスを追加する方法はありますか?

はい、post_type_archive_title( 'アーカイブ: ' ) のように $prefix 引数を使用して、タイトルの前にテキストを追加することが可能です。

まとめ

post_type_archive_title() は、カスタム投稿タイプのアーカイブページで使用するタイトル表示用のテンプレートタグです。このタグを利用することで、カスタム投稿タイプに合わせたアーカイブページタイトルを簡単に出力できます。get_post_type_archive_link()is_post_type_archive() などの関連タグと併用することで、カスタム投稿タイプのアーカイブページを効果的に操作・表示できます。

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

This site uses Akismet to reduce spam. Learn how your comment data is processed.

目次