WordPress函数 wp_reset_postdata()用法

这个函数的主要功能就是在自定义循环查询结束后使用new WP_Query()恢复WordPress主循环查询中的$post全局变量,对当前主循环查询中的$post变量进行了重建。

主循环查询和自定义循环查询(二次查询)(the main query loop and secondary query loops)不同之处是:

1.主循环查询是基于URL请求和主题进程载入之前进行的。

2.自定义循环查询是在主题模板和插件文件查询时使用的。

其实这函数功能简单来说就是,当咱们使用Loop循环输出文章时,会自定义一些条件,比如输出某一类文章或是等等各种条件,当执行完成时,最后用wp_reset_postdata()这个函数重置一下。

用法:

<?php wp_reset_postdata(); ?>

这里有个简单的例子

<?php
// 自定义参数,每页显示三篇POST
$args = array( 'posts_per_page' => 3 );
 
// 查询
$the_query = new WP_Query( $args );
?>
 
<?php if ( $the_query->have_posts() ) : ?>
 
 <!-- 循环开始 -->
 <?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
 <?php the_title(); ?>
 <?php the_excerpt(); ?>
 <?php endwhile; ?><!-- 循环结束 -->
 
 <!-- 在这里加入分页功能 -->
 <?php wp_reset_postdata(); ?>
 
<?php else: ?>
 
<p><?php _e( 'Sorry, no posts matched your criteria.' ); ?></p>
 
<?php endif; ?>

现在,对于WordPress中wp_reset_postdata()函数用法应该已经熟悉了,在后期的二次开发中自定义循环结束后一定记得要reset。