説明
is_post_type_archive() は、カスタム投稿タイプのアーカイブを表示しているかを判定する関数です。
基本構文
is_post_type_archive( string|string[] $post_types = '' ): bool
引数
$post_types:投稿タイプ(省略可)
戻り値
条件に当てはまれば true、そうでなければ false。
使い方(サンプル)
if ( is_post_type_archive( 'news' ) ) {
// news の一覧ページ
}
注意点
- 投稿タイプ登録時に
has_archiveを有効にしておく必要があります。
実務での使いどころ
- カスタム投稿タイプのアーカイブページだけで、表示を変えるとき。
- 複数の投稿タイプを、配列でまとめて判定するとき。
よくあるミスと対処
- 投稿タイプを登録するときに、
has_archiveがfalseのままで、アーカイブページがない。 - 個別ページで使っている。個別ページは
is_singular()。
NG例
if ( is_post_type_archive( 'news' ) ) {
// お知らせの個別ページにも効くつもり
}
OK例
if ( is_post_type_archive( 'news' ) || is_singular( 'news' ) ) {
// お知らせの、アーカイブと個別ページ
}
使い分け早見表
| やりたいこと | 使うもの |
|---|---|
| 投稿タイプのアーカイブか | is_post_type_archive() |
| 投稿タイプの個別ページか | is_singular() |
| すべてのアーカイブか | is_archive() |
関連項目
公式リファレンス:is_post_type_archive() | Function | WordPress Developer Resources

コメント