描述
更多类似的主题函数信息,请查看主题开发手册中的条件标签文章。
参数
- $post_types
-
(string|string[]) (可选) 要检查的文章类型(post type),单个或数组
默认值: ''
返回
(bool) 该查询是否针对现有的文章类型存档页面。
源码
更新日志
版本 | 描述 |
---|---|
3.1.0 | 开始引入 |
使用示例
示例
如果当前页面是自定义文章类型的存档,则显示其标题:<?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' ); ?>
为自定义的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 ); } } );