我怎么知道我在什么类别中--在标题中?

时间:2013-02-19 作者:Eric

如何识别当前页面在中显示的类别<head>? 以下是我现在掌握的代码:

<?php if ( is_home() ) { ?>
    <!-- set up for home page ad -->
<?php } elseif ( in_category( \'Restaurant Reviews\' )) { ?>
    <!-- set up for restaurant reviews ad -->
<?php } else { ?>
    <!-- set up for run of site ad -->
<?php } ?>
此代码在我的“餐厅评论”页面失败。。。它始终选择“运行站点”选项。

作为测试,在页面下方,我使用the_category() 为了了解WP认为当前页面使用了哪些类别,我得到了“切尔西、曼哈顿、纽约、餐厅评论”。当然in_category() 命令在我的页面的下半部分正确工作,并且可以正确识别它是否属于“餐厅评论”类别。

所以,在那里<head>, 我如何判断自己何时属于“餐厅评论”类别?

2 个回复
最合适的回答,由SO网友:Chip Bennett 整理而成

这个in_category( $category ) 仅当当前帖子分配了指定的类别时,conditional才会返回true。如果要确定何时category archive index page, 您应该改为使用is_category( $category ):

if ( is_category( \'Restaurant Reviews\' ) ) {
    // The current page is the Restaurant Reviews
    // category archive index page; do something
}
旁注:is_home() 当当前页面是博客帖子索引时,返回true,但对于站点首页而言,这并不总是真的。如果站点使用静态首页,则博客帖子索引将位于单独的静态页面上,并且is_home()not 在站点首页返回true。因此,如果您真的打算查询site front page, 使用is_front_page():

<?php 
if ( is_front_page() ) {
    // set up for home page ad
} elseif ( is_category( \'Restaurant Reviews\' )) {
    // set up for restaurant reviews ad
} else {
    // set up for run of site ad
} 
?>

SO网友:helgatheviking

这取决于你在<head>. 看看Plugin API/Action reference. 这个post 直到wp 钩如果要添加此条件,请手动添加标题。在之前wp_head() 你可能没有什么可以合作的。

我会尝试通过函数将其添加到wp_enqueue_scripts

结束