条件Single.php语句不识别条件句

时间:2012-02-03 作者:m.j.

我已经尝试了各种可能的方法来实现这个条件,它跳过了in\\u类条件,转到了最后一个选项。这是我的单曲代码。php:

$post = $wp_query->post;
if (in_category(\'Autos\')) {
    get_template_part("single-autos.php");
} else if (in_category(\'Advertising\')) {
    get_template_part("single-ads.php");
} else {
    get_template_part("single-post.php");
}
我在这个主题上有很多条件句,它们通过调用in_category 对于这两个类别,但无论我做什么,这个条件总是回到单个帖子。php布局。单一汽车。主题中确实存在php和single-ads.php。

我做错什么了吗?

谢谢

编辑以添加来自单个汽车的代码。php:

 get_header();
<div id="blogcontent" class="auto">

     if (have_posts()) : while (have_posts()) : the_post(); 

          get_template_part( \'loop\' );

     comments_template(); 

    <div id="singlepagination">
        <div class="newer">< next_post_link(); > </div>
        <div class="older">< previous_post_link(); > </div>
    </div>

     endwhile; else: 

        <h2>Thank you for pushing the self-destruct button. This ship will self destruct in ten seconds.</h2>

 endif; 


</div><!--/content-->
 get_sidebar(); 
 get_footer();

1 个回复
SO网友:Chip Bennett

我第一次怀疑出了什么问题:

$post = $wp_query->post;
你不应该这样做。在已经设置了查询条件的任何地方,条件都将假定当前的Post ID。因此,这表明:

指定的类别实际上不存在。我假设这不是真的,因为您指出您在主题的其他地方成功地使用了相同的代码

  • 您正在调用当前查询/帖子实际上未设置的某个地方的代码。例如,您可能在存档索引页或搜索页等的上下文中调用此代码。在循环之外。奇怪的是,您的标题表明您正在调用此代码single.php.

    发布您的整个single.php 代码,这样我们就可以在上下文中看到条件代码了$post = $wp_query->post; 具有global $post;

    1. 编辑

      上面发布的是整个单曲。php

      返回的内容$post 对象a上有什么var_dump( $post ); 在全球化之后?

      此外,可能与您的问题无关(查询设置为wp, 因此,查询条件应在以下位置可用:template_redirect, 这就是single.php 但我建议你get_header(), get_sidebar(), 和get_footer() 打电话进来single.php, 和修剪single-auto.php, 等等,直到他们的实际内容。

    结束

    相关推荐

    每个帖子都有唯一的wp_Schedule_Single_Event()?

    我正在为一个客户建立一个网站,要求在不同的日期发送关于每个帖子的电子邮件(即帖子发布前两周,然后在帖子发布后四周,等等)。看来最好的方法是wp_schedule_single_event() 具有唯一的事件名称,但我不太确定如何正确调用add_action 在这些单一事件上each event has a unique name.我正在安排这样的活动:add_action(\'wp_insert_post\', \'cron_emails\'); function cron_emails() {