我刚刚开始使用ProcessWire系统并且非常享受它。
在我的主页上,我想从随机页面显示图像。页面可以是任何页面,只要它是ID为“1010”的父页面的子页面。
是否可能,如果可行,我该如何实现?
我目前显示主页图片的代码是:
if($page->image) echo "<img src='{$page->image->url}'>";
但是,我想从上述父ID的任何子页面中选择一个随机图像。
我找到this,但不确定它是否有用。
非常感谢任何指示: - )
答案 0 :(得分:1)
您应该在模板的代码中尝试这样的事情(假设您的图像字段被称为image
):
/* Find all children of page with ID 1010 that include an image */
$allChildPages = $pages->find('parent=1010,image.count>0');
/* Select a page from all children in the PageArray randomly */
$randomChildPage = $allChildPages->getRandom();
if ($randomChildPage->image) {
echo "<img src='{$randomChildPage->image->url}'>";
}
查看相关代码:
$pages
->
find()
将Pages(与Selector匹配)的集合作为PageArray
返回(扩展WireArray
})class。。$anyWireArray
->
getRandom()
会返回自身的随机元素。另请参阅this forum thread,其中讨论了从不同页面随机化图像的几种策略。