已解决
0

今天在某个WordPress交流QQ群中看到有个网友向大家求助问wordpress调用的文章每5篇用ul包装起来,php代码怎么写循环,看群里一直也没有人回复,所以想着来WordPress中文社区发出个提问,看能不能得到及时的回答,也好分享给这个网友,我相信很快可以得到答案的。哈哈。

1 个回答

最佳
WordPress日记
超哥
行业大佬
行业大佬
时间: 2020年11月06日

实现这个其实没有什么技术难点,主要就是靠思路,下面是其中的一个思路,您可以参考一下:

<?php $toutal=4;?><!--先设置准备显示几个每5条一个ul包裹起来的块儿,如果是要把所有文章都按照这样的格式显示出来,那就可以通过查询先获取到符合条件的文章的总数,然后用总数除以5得到的就是一共显示的每5条一个ul包裹起来的块儿-->
<?php for ($i=1; $i<=$toutal; $i++) {?><!--最外层使用for循环,循环输出每5条一个ul包裹起来的块儿-->
    <ul>
	    <?php
	        $offset = ($i-1)*5;//设置每次循环需要的偏移量
			$args=array(
			    'post_type'=> 'post',
			    'posts_per_page' => 5,
			    'offset' => $offset,
			);
			$wp_query = new WP_Query( $args );
			if ( $wp_query->have_posts() ) : while ( $wp_query->have_posts() ) : $wp_query->the_post();
		?>
		    <li><?php the_title();?></li>
		<?php endwhile; endif; wp_reset_postdata();?>
	</ul>
<?php }?>

上面的方法有个弊端就是,默认的分页功能是没法和这个结合使用的,如果需要使用分页功能,那就需要自己租写分页功能了。

使用上面的方面实现的效果就如下图一样:

图片中我是每两条用一个ul包裹起来了,测试文章比较少,哈哈