网络营销电子商务研究中心

网络营销电子商务研究中心 (https://www.0058.net/index.php)
-   WordPress (https://www.0058.net/forumdisplay.php?f=68)
-   -   wordpress 使用query_posts()查询函数导致if语句判断失效问题 (https://www.0058.net/showthread.php?t=5181)

Jaxton 2015-06-14 06:29 AM

wordpress 使用query_posts()查询函数导致if语句判断失效问题
 
query_post是许多主题都有用到的函数, 可以用来显示最近更新的文章或者随机文章等, 例如显示8篇最新文章的代码就有query_post的影子.

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

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

如:


<?php wp_reset_query(); if (is_page('2') ) { echo 'this is page 2!'; } ?>
或者我们可以在判断句之后加上wp_reset_query, 也可以只在query_post之后加上重置, 这样这个query_post就不会影响到下面的任何判断函数了.

如:<ul>
<?php query_posts('posts_per_page=10&cat=73');?>
<?php if(have_posts()):while(have_posts()):the_post(); ?>
<li><span class="grayz">· </span><a href="<?php the_permalink(); ?>" target="_blank" class="black "><?php echo cut_str($post->post_title,36); ?></a></li>
<?php endwhile;?>
<?php else:?>
<p>Sorry,no posts matched your criteria.</p>
<?php endif;wp_reset_query(); ?>
</ul>


All times are GMT +8. The time now is 04:06 AM.

Powered by vBulletin Version 3.8.7
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.