Phil Kurth has written an informative article 使用current_post
中的属性global $wp_query
对象
这可以应用于您的问题,并允许我们在循环中的任意点干净地插入内容。
功能如下所示(置于functions.php
或者,如我所愿,放入一个单独的库文件,该文件只处理查询mod):
/**
* Returns the index of the current loop iteration.
*
* @return int
*/
function pdk_get_current_loop_index() {
global $wp_query;
return $wp_query->current_post + 1;
}
然后在输出循环时,如果我们想在第6个帖子之后插入ad:
if ( have_posts() ) :
while (
have_posts() ) :
the_post();
get_template_part( \'content\' );
if ( pdk_get_current_loop_index() === 6 ) {
?>
<div class="ad-mrec">
<!-- Insert ad coder here -->
</div>
<?php
}
endwhile;
endif;
如果您阅读Phil的文章,还可以使用此函数执行更多操作。