我正在制作一个循环,希望内容(来自两个单独的类别)显示如下:
1个大格式帖子,1个随机产品,2个小格式帖子,1个特色帖子。。。重复
为了实现这一点,我为整个页面编写了一个模板,其中包含一个父循环(尚未编写),然后为每个嵌套循环编写了4个模板(-large/random/small/feature)。循环模板将使用加载到父页面中include(locate_template(\'looptemplate.php\'));
- 我需要使用此方法,以便传递变量($do_not_duplicate
) 到每个循环。
我的问题是我不能numberposts
在每个循环模板之后重置,因此如果大格式模板使用参数numberposts => 1
然后,为了使小格式模板显示需要使用的2篇文章numberposts => 3
. 这对于父循环的第一次迭代很好,但它是不可重复的。
下面是父页面模板的代码(注意,我还没有编写父循环,因为我仍在尝试用numberposts
):
<?php $do_not_duplicate = array(); ?>
<div id="primary" class="content-area">
<div id="content" class="site-content" role="main">
<div class="largenews">
<?php include(locate_template(\'largenews.php\')); ?>
</div><div class="product">
<?php include(locate_template(\'productflash.php\')); ?>
</div><div class="smallnews">
<?php include(locate_template(\'smallnews.php\')); ?>
</div><div class="featurepost">
<?php include(locate_template(\'featurepost.php\')); ?>
</div>
</div><!-- #content -->
这是largenews的代码。php。(smallnews.php非常相似,但希望再显示2篇帖子)
<?php $args = array( \'numberposts\' => 1, \'category\' => \'35,1052\');
$largepost = get_posts($args);
foreach( $largepost as $post ) : setup_postdata($post);
if (in_array($post->ID, $do_not_duplicate)) continue;
array_push($do_not_duplicate, $post->ID);
//Code to format post
endforeach;
wp_reset_postdata(); ?>
现在我已经尝试了
numberposts
,
posts_per_page
,
showposts
,
rewind_posts()
,
wp_reset_postdata
, 和
wp_reset_query
我可以想象,但是
numberposts
从第一个循环开始
numberposts
第二个循环(以及将出现的任何进一步迭代)。
我还尝试使用$largepost->wp_reset_postdata();
但我明白了:“致命错误:在非对象上调用成员函数wp\\u reset\\u postdata()”。
对于这个问题的长度,我深表歉意,但我希望我已经把我的问题说清楚了,并包括了所有相关信息。很抱歉,代码格式不可靠,我无法以任何其他方式使其工作!