ワードプレスのis_post_type_archive関数の使用方法・解説

概要

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

サンプルコード

  1. ヘッダーの変更

    if ( is_post_type_archive( 'product' ) ) {
       get_header( 'product' );
    } else {
       get_header();
    }
    

    このコードは、product というカスタム投稿タイプのアーカイブページで特別なヘッダーを呼び出します。

  2. 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を読み込みます。

  3. カスタムメッセージの表示

    if ( is_post_type_archive( 'event' ) ) {
       echo '<h2>イベント一覧</h2>';
    }
    

    このコードは、event カスタム投稿タイプのアーカイブページで特別なメッセージを表示します。

  4. クエリのカスタマイズ

    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件に制限します。

  5. サイドバーの表示

    if ( is_post_type_archive( 'portfolio' ) ) {
       get_sidebar( 'portfolio' );
    }
    

    このコードは、portfolio カスタム投稿タイプのアーカイブページで特定のサイドバーを表示します。

この関数について質問する


上の計算式の答えを入力してください