Wordpress 循环:获取循环内的当前帖子计数
Posted
技术标签:
【中文标题】Wordpress 循环:获取循环内的当前帖子计数【英文标题】:Wordpress loop : get current post count inside The Loop 【发布时间】:2011-03-19 11:59:38 【问题描述】:在循环中,我想检索当前的帖子数。
例如,在每 3 个帖子之后,我想插入一个广告。
那么,如何获取循环计数的值?
【问题讨论】:
【参考方案1】:您可以使用WP_Query
对象实例的current_post
成员来获取当前的后迭代;
while ( have_posts() ) : the_post();
// your normal post code
if ( ( $wp_query->current_post + 1 ) % 3 === 0 )
// your ad code here
endwhile;
注意,如果您在函数中使用它,则需要将 $wp_query
全球化。
【讨论】:
我试过这个方法。每 3 个帖子前后都会插入广告!我如何让它仅在 3 个帖子后插入广告。 @KartikRao 供将来参考,这个答案有那么一点缺陷。由于索引从 0 开始,第一次运行条件(while 循环的第一次迭代)时,它实际上将返回true
,因为 0 模数任何实数始终为 0。广告代码在您的第一个之前被错误地插入发布、第四篇、第七篇等。更新后的代码应为:($wp_query->current_post + 1) % 3
。
@AdamMcArthur 在第四和第七个帖子之前插入广告代码是正确的,因为问题描述说应该在“每 3 个帖子之后”插入广告。您是对的,在第一个帖子之前插入广告不符合规范,但您建议的修复 - 将在第 2/5/8 个帖子之后插入广告,而不是按要求在第 3/6/9 个帖子之后插入广告 - 不要么。【参考方案2】:
为什么不增加一个变量然后在需要时显示您的广告?
while(LOOP)
echo $i%3==0 ? $ad : '';
$i++
【讨论】:
【参考方案3】:不知道为什么,但是建议的方法对我不起作用,我不得不求助于以下方法
$loop_counter = 1;
while( $query->have_posts() )
//Do your thing $query->the_post(); etc
$loop_counter++;
如果你问我,比玩全局变量更安全。
【讨论】:
以上是关于Wordpress 循环:获取循环内的当前帖子计数的主要内容,如果未能解决你的问题,请参考以下文章