WordPress的条件页面类型(例如is_home,is_front_page,is_single)不起作用

我一直在尝试使用is_home / is_front_page或is_single的一些条件语句, 但它们在我的主题中不起作用。以下是有关此类代码的示例:

< ?php if(is_front_page() || is_home() ) : ?> < ?php if(function_exists('show_flexslider_rotator')) echo show_flexslider_rotator('homepage_fexslider' ); ?>

这会加载我的Flexslider, 但是当我转到第2页时, 滑块仍保留在页面上。
我已经在其他主题中成功使用了这些陈述。
我是否需要在functions.php中添加对此功能的支持?
我该如何解决?
我的home.php代码如下:
< ?php get_header(); ?> < ?php if(is_front_page() || is_home() ) : ?> < ?php if(function_exists('show_flexslider_rotator')) echoshow_flexslider_rotator( 'homepage' ); ?> < ?php endif; ?> < div class="row below-banner"> < div id="site-content" class="span8"> < div class="row"> < div class="span8"> < div class="widget-header"> < h2> What's new< /h2> < /div> < /div> < /div> < div class="row"> < div class="posts span8"> < ?php $paged = (get_query_var('paged')) ? get_query_var('paged') :1; query_posts('cat=-35& paged=' . $paged); ?> < ?php if (have_posts()) : while (have_posts()) : the_post(); ?> < ?php get_template_part( 'entry' ); ?> < ?php endwhile; ?> < ?php wp_pagenavi(); ?> < ?php else : ?> < h2> No Posts Found< /h2> < ?php endif; wp_reset_query(); ?> < /div> < /div> < ?php get_footer(); ?>

#1我们需要更多信息/代码才能给出明确的答案, 但是我最好的猜测是你需要在某处添加wp_reset_query()。
快速测试:在条件语句之前添加wp_reset_query(), 看看是否可以解决问题。如果是这样, 那么你需要找到有问题的查询, 并确保在适当的时间将其重置。
#2像is_single这样的wordpress条件语句的问题在于它们在functions.php中的函数外部不起作用
因此, 解决方案是将条件放在函数中, 并可能使用add_action调用该函数。
【WordPress的条件页面类型(例如is_home,is_front_page,is_single)不起作用】这里的代码is_single在functions.php中不起作用, 解释了它如何在函数外部不起作用以及应该如何工作

    推荐阅读