当前浏览:首页 / WordPress函数 / is_post_type_archive()

is_post_type_archive( string|string[] $post_types = '' )

是否为文章类型存档页

archive 存档

is 条件判断more...

post_type 文章类型more...


描述

更多类似的主题函数信息,请查看主题开发手册中的条件标签文章。


参数

$post_types

(string|string[]) (可选) 要检查的文章类型(post type),单个或数组

默认值: ''


返回

(bool) 该查询是否针对现有的文章类型存档页面。



源码

查看源码 官方文档


更新日志

版本描述
3.1.0开始引入

使用示例

  • 示例1

    示例
    如果当前页面是自定义文章类型的存档,则显示其标题:

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

    注意
    类似 /?post_type=my-custom-post-type这样的页面,该选项返回true,但对于/category/uncategorized/?post_type=custom则返回false。它只检测是否为给定类型的归档页,而不会检测查询参数post_type是否存在 — 可通过get_query_var('post_type')找到。

    此外,根据此函数执行的时间,它可能会在nav_menu_item执行,也可能不会,例如:

    <?php
    function wpdocs_my_function( $query ) {
        if ( is_post_type_archive( 'my_custom_post_type' ) ) {
             // Do stuff
        }
    }
    add_action( 'pre_get_posts', 'wpdocs_my_function' );
    ?>

    “Do stuff”是否在菜单中运行取决于主题是否使用导航菜单。更好的用法是:

    <?php
    function wpdocs_my_function( $query ) {
        if ( is_post_type_archive( 'my_custom_post_type' ) && 'my_custom_post_type' === $query->query['post_type'] ) {
             // Do stuff
        }
    }
    add_action( 'pre_get_posts', 'wpdocs_my_function' );
    ?>
  • 示例2

    为自定义的post类型存档页面添加样式/脚本

    add_action( 'wp_enqueue_scripts', function() {
        // check if this is snippets archive page
        if ( is_post_type_archive( 'snippets' ) ) {
            wp_enqueue_style( 'wpdocs-style-name', get_stylesheet_uri() );
            wp_enqueue_script( 'wpdocs-script-name', get_template_directory_uri() . '/js/example.js', array(), '1.0.0', true );
        }
    } );