0

我不知道这是否可能,但我试图从get_pages() 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 个块

任何帮助将不胜感激 谢谢:)

4

2 回答 2

2

@aelfric5578 的答案的替代方法是使用array_chunk将数组分解为您需要的部分。您可以破坏原始$pages数组或在其中生成一个数组foreach并破坏它,以最适合您的方式,但我可能会破坏$pages数组。这是一个使用原始$pages.

$blocks = array_chunk($pages, 8);

好处将是可读性和可维护性。由于您已经有一个迭代器——也许应该有两个,你似乎使用了两次相同的变量名——添加更多计数器可能会让人感到困惑。

于 2013-07-09T14:23:37.173 回答
1

你需要一个单独的柜台。既然你已经有了$i,你可以使用条件和模运算符。 如果能被 8 整除,$i % 8则返回零,否则返回除数的余数。$i

所以,如果$i % 8 == 0,开始你的分组。假设您计划用 a<div>或类似的东西对事物进行分组。您可以$i % 8 == 7在 for 循环结束后关闭分组。

但是,您似乎设置$i了两次。是否有一个原因?为了使我的解决方案起作用,您需要为内部 for 循环使用不同的变量。

于 2013-07-09T12:32:37.180 回答