概要
is_post_type_archive 関数は、現在のアーカイブページが特定のカスタム投稿タイプのアーカイブページであるかどうかを調べるために使用されます。この関数は、WordPressのテーマやプラグイン開発において、特定の投稿タイプに関連するコンテンツを表示する条件を判断する際に非常に役立ちます。
この関数がよく使われるシナリオは以下の通りです:
1. カスタム投稿タイプのアーカイブページで異なるヘッダーを表示する。
2. カスタム投稿タイプアーカイブに特化したCSSやJavaScriptを読み込む。
3. カスタム投稿タイプのアーカイブに特有な情報を表示する。
4. アーカイブページのクエリにカスタム条件を追加する。
5. 特定のカスタム投稿タイプ専用のサイドバーを表示。
6. カスタム投稿タイプアーカイブに特有なメッセージを表示。
7. 特定のカスタム投稿タイプのフィルタを追加する。
8. ユーザーが特定のカスタム投稿タイプのアーカイブにアクセスした際のログを記録する。
構文
is_post_type_archive( $post_type );
パラメータ
$post_type(string, optional): チェックするカスタム投稿タイプのスラッグ。指定しない場合は、全ての投稿タイプのアーカイブをチェック。
戻り値
- (bool): 現在のページが指定したカスタム投稿タイプのアーカイブページである場合は
true、そうでない場合はfalse。
関連する関数
使用可能なバージョン
- この関数はWordPress 3.0.0以降で使用可能です。
ワードプレスのコアファイルのパス
wp-includes/query.php
この関数のアクションでの使用可能性
| アクション名 | 使用可能性 |
|---|---|
| mu_plugin_loaded | |
| registered_post_type | 〇 |
| plugins_loaded | |
| wp_roles_init | |
| setup_theme | |
| after_setup_theme | |
| set_current_user | |
| init | |
| register_sidebar | |
| wp_loaded | |
| send_headers | |
| parse_query | |
| pre_get_posts | 〇 |
| wp | |
| template_redirect | 〇 |
| get_header | |
| wp_head |
サンプルコード
-
ヘッダーの変更
if ( is_post_type_archive( 'product' ) ) { get_header( 'product' ); } else { get_header(); }このコードは、
productというカスタム投稿タイプのアーカイブページで特別なヘッダーを呼び出します。 -
CSS/JSの読み込み
add_action( 'wp_enqueue_scripts', 'enqueue_product_styles' ); function enqueue_product_styles() { if ( is_post_type_archive( 'product' ) ) { wp_enqueue_style( 'product-styles', get_template_directory_uri() . '/css/product.css' ); } }このコードは、
productアーカイブページの時にのみ、特定のCSSを読み込みます。 -
カスタムメッセージの表示
if ( is_post_type_archive( 'event' ) ) { echo '<h2>イベント一覧</h2>'; }このコードは、
eventカスタム投稿タイプのアーカイブページで特別なメッセージを表示します。 -
クエリのカスタマイズ
add_action( 'pre_get_posts', 'modify_event_query' ); function modify_event_query( $query ) { if ( is_post_type_archive( 'event' ) && $query->is_main_query() ) { $query->set( 'posts_per_page', 10 ); } }このコードは、
eventカスタム投稿タイプのアーカイブページで表示する投稿数を10件に制限します。 -
サイドバーの表示
if ( is_post_type_archive( 'portfolio' ) ) { get_sidebar( 'portfolio' ); }このコードは、
portfolioカスタム投稿タイプのアーカイブページで特定のサイドバーを表示します。