is_singular just won't work

时间:2014-07-11 作者:Alevalentini

我正在使用wp 3.9.1和插件自定义内容类型管理器。我正在创建自己的主题。我创建了一个名为“aggregato”的自定义类型。我还使用自定义分类法。然后,我为我的首页创建了一个WP\\U查询:

$query = new WP_Query( array(
   \'post_type\' => array (\'post\', \'aggregato\'),
   \'cat\' => \'-1\',
   \'posts_per_page\' => 12,
));
查询工作正常,它返回12个“post”和“aggregato”post类型的项目。问题是,我想以不同的格式设置它们。因此,当我使用:

if ( is_singular(\'aggregato\') ) {
    //my code
}
什么都没发生。它永远不会进入,这个条件永远不会返回true。我不知道该怎么办了。我用过is_singular(), is_single(), $query->post-type, $post->post-type. 没有什么这根本不起作用。

有人知道吗?有什么指示吗?求求你,救命!

编辑:关键是,使用codex并在web上查找answetrs,我总是被发送到特定的功能。有一段时间我才明白这不是我的情况。我认为我发布的问题非常清楚。我只是,非常简单,错了。

3 个回复
最合适的回答,由SO网友:Nilambar Sharma 整理而成

我相信你是想检查循环内的帖子类型。要检查帖子类型,请尝试以下操作:

global $post;
if(\'post\' == $post->post_type ){
  // post stuff here
}
else{
  // aggregato stuff here
}
或者,您也可以使用get_post_type() 函数获取当前职位的职位类型。

SO网友:vancoder

你误解了is_singular() 条件法典的第一行指出

此条件标记检查是否显示单个帖子

显示关键字there。只有当用户当前查看的页面是所提供帖子类型的单个实例时,才会返回true。

SO网友:Berend

我相信你只是想循环浏览查询返回的帖子?从查询创建循环,如下所示:

if ( $query->have_posts() ) {
    while ( $query->have_posts() ) {
        $query->the_post();
        // Content for single post here
    }
}

结束

相关推荐