• 赤色のリンクは、まだ日本語Codexに存在しないページ・画像です。英語版と併せてご覧ください。(詳細

このWikiはいつでも誰でも編集できます

関数リファレンス/is post type archive

提供: WordPress Codex 日本語版
移動先: 案内検索

説明

現在のクエリが、指定された投稿タイプのアーカイブページ向けクエリかどうかをチェックします。

使い方

<?php is_post_type_archive( $post_types ); ?>

パラメータ

$post_types
配列|文字列) (オプション) チェックしたい投稿タイプ、またはその配列。
初期値: なし

戻り値

(真偽値) 
クエリ が指定された 投稿タイプ のアーカイブページ用であるか。
参考:パラメータが空の場合、任意のカスタム投稿タイプのアーカイブページであれば true を返します。

用例

現在のページがカスタム投稿タイプのアーカイブページかどうかを確認し、そうであればその「カスタム投稿タイプ」のタイトルを表示する。

<?php
if ( is_post_type_archive() ) {
    ?>
    <h1><?php post_type_archive_title(); ?></h1>
    <?php
}
?>

これは /category/uncategorized/?post_type=custom のようなページでは false が返されます。true が返ってくるのは /?post_type=custom のようなページのみです。言い換えれば、クエリパラメータ内に post_type が存在しているかをチェックしているのではなく、指定された投稿タイプの投稿すべてを表示するアーカイブページであるかをチェックしているということです。クエリ変数を取得するには get_query_var('post_type') があります。

この関数が実行されるタイミングによっては nav_menu_item 経由で実行されない場合もあります。以下の例をご覧ください。

<?php
function some_func( $query ){
    if ( is_post_type_archive('my_custom_post_type') ) {
         // 何かを実行
    }
}
add_action('pre_get_posts','some_func');
?>

テーマがナビゲーションメニューを使っているかどうかにより、「何かを実行」部分がメニュー内で実行されたりされなかったりします。正しい使い方は以下のとおりです。

<?php
function some_func( $query ){
    if ( is_post_type_archive('my_custom_post_type') 
         && ! empty( $query->query['post_type']  == 'my_custom_post_type' ) {
         // 何かを実行
    }
}
add_action('pre_get_posts','some_func');
?>

更新履歴

ソースファイル

is_post_type_archive()wp-includes/query.php にあります。

関連資料

投稿タイプ: register_post_type(), add_post_type_support(), remove_post_type_support(), post_type_supports(), post_type_exists(), set_post_type(), get_post_type(), get_post_types(), get_post_type_object(), get_post_type_capabilities(), get_post_type_labels(), is_post_type_hierarchical(), is_post_type_archive(), post_type_archive_title()


条件分岐タグis_404(), is_admin(), is_admin_bar_showing(), is_archive(), is_attachment(), is_author(), is_category(), is_comments_popup(), is_date(), is_day(), is_feed(), is_front_page(), is_home(), is_local_attachment(), is_main_query, /is_multi_author, is_month(), is_new_day(), is_page(), is_page_template(), is_paged(), is_plugin_active(), is_plugin_active_for_network() /en, is_plugin_inactive() /en, is_plugin_page() /en, is_post_type_archive(), is_preview() /en, is_search(), is_single(), is_singular(), is_sticky(), is_tag(), is_tax(), is_taxonomy_hierarchical(), is_time(), is_trackback(), is_year(), in_category(), in_the_loop(), is_active_sidebar(), is_active_widget(), is_blog_installed() /en, is_rtl(), is_dynamic_sidebar(), is_user_logged_in(), has_excerpt(), has_post_thumbnail(), has_tag(), pings_open(), email_exists(), post_type_exists(), taxonomy_exists(), term_exists(), username_exists() /en, wp_attachment_is_image(), wp_script_is()



関数リファレンステンプレートタグ目次もご覧ください。


最新英語版: WordPress Codex » Function Reference/is_post_type_archive最新版との差分