我不知道这是否可行,但我试图从get_pages()
function of Wordpress获取分页,因为我需要这些页面使用不同的类或在某个div内部回显,所以我可以用Javascript管理它们后来匹配欲望模板。
到目前为止,我有这个回应内容:
$pages = get_pages('child_of='.$post->ID.'&sort_column=post_date&sort_order=desc');
$i =0;
foreach($pages as $page)
{
$content = $page->post_content;
if(!$content)
continue;
$i++;
$content = apply_filters('the_content', $content);
$doc = new DOMDocument();
$doc->loadHTML($content);
$xpath = new DOMXPath($doc);
$imagesrc = $xpath->evaluate("string(//img/@src)");
$imagehref = $xpath->evaluate("string(//a/@href)");
for($i = 0; $i < count($content); $i+=5) {
echo "<li><a id='item-$i' href='$imagehref'><img src='$imagesrc'/></a></li>\n";
for($i = 5; $i < count($content); $i+=18) {
echo "more";
}
}
所以现在我确实得到了所有物品,无论是10还是50,但我想要的是将它们放在8块中,是否可以为每个物品做一个?还是有另一种方法可以做到这一点?
注意 我需要将大量帖子包含在8个块中
任何帮助都会非常赞赏 谢谢:))
答案 0 :(得分:2)
@ aelfric5578的替代方案是使用array_chunk
将阵列分解为您需要的部分。您可以打破原始的$pages
数组或在foreach
中生成一个数组并打破它,以最适合您的方式,但我可能会破坏$pages
数组。以下是使用原始$pages
的示例。
$blocks = array_chunk($pages, 8);
好处是可读性和可维护性。因为你已经有了一个迭代器 - 也许应该有两个,你似乎两次使用相同的变量名称 - 添加更多的计数器会让人感到困惑。
答案 1 :(得分:1)
你需要一个单独的柜台。由于您已经拥有$i
,因此您可以使用条件和模运算符。如果$i % 8
可被8整除,则$i
返回零,否则返回该除法的余数。
因此,如果$i % 8 == 0
,请开始分组。假设您计划使用<div>
或类似的东西对事物进行分组。您可以在for循环结束时$i % 8 == 7
之后关闭分组。
但是,您似乎正在设置$i
两次。是否有一个原因?为了使我的解决方案起作用,您需要为内部for循环使用不同的变量。