简单解决query_post查询函数所导致后续WordPress的判断类语句失效问题

query_post是许多主题都有用到的函数, 可以用来显示最近更新的文章或者随机文章等, 例如EI所用的显示8篇最新文章的代码就有query_post的影子.

query_post是Wordpress经常用到的判断函数, 在一开始发现问题时候排除所有可能的语法错误后检查主题的所有代码发现只有在query_post出现以后接下来的判断函数就失效了.

<?php query_posts("showposts=8&caller_get_posts=1&orderby=date&order=DESC"); ?>
***一些调用函数***省略***
<?php endwhile; endif; ?>

之后的一些判断函数就全部失效了, 例如本应该是文章内显示的却在主页上也显示了一样的内容, 或者随机显示了一个内容

<?php if (is_home () ) { } elseif ( is_category() ) { } elseif (is_single() || is_page() ) { }elseif (is_search() ) { } else { } ?>

WordPress官方文档中指出执行query_post之后会影响在其之下的判断函数, 需要在判断函数前加上wp_reset_query重置查询函数, 例如


<?php
wp_reset_query();
if (is_page('2') ) {
echo 'this is page 2!';
}
?>

点击查看Wordpress官方手册

我们可以在判断句之前加上wp_reset_query, 也可以只在query_post之后加上重置, 这样这个query_post就不会影响到下面的任何判断函数了.

<?php query_posts("showposts=8&caller_get_posts=1&orderby=date&order=DESC"); ?>
***一些调用函数***省略***
<?php endwhile; endif; ?>
<?php wp_reset_query(); ?>

作者: EI

链接: 简单解决query_post查询函数所导致后续WordPress的判断类语句失效问题

本站所有文章,除特别标明外, 皆为原创. 如需转载, 请复制粘贴下面的代码到文章底部.

转载自 <a href="http://www.ei2u.com/wordpress/work/522.html" title="简单解决query_post查询函数所导致后续WordPress的判断类语句失效问题" rel="bookmark">简单解决query_post查询函数所导致后续WordPress的判断类语句失效问题 | e网软摘</a>