如果给出ID列表,则getResources不显示未发布的ID的方法

时间:2016-09-20 05:43:10

标签: modx modx-revolution modx-getresources

我有一个SQL查询会吐出一组ID。我将这些ID提供给getResources调用:

         [[getResources?
                &parents=`4`
                &resources=`' . $ids . '`
                &limit=`0`
                &showHidden=`1`
                &tpl=`PropItemTPL`
                &sortby=`menuindex ASC, id`
                &sortdir=`ASC`
                &includeContent=`1`
                &includeTVs=`1`
                &processTVs=`1`
                &showUnpublished=`0`
           ]]

问题是这显示所有ID,即使它们未发布。

我已加入&showUnpublished='0',但这没有任何区别。

有人知道是否有办法让这项工作与getResources一起使用?或者我是否需要重新编写PHP和MySQL?

2 个答案:

答案 0 :(得分:0)

您可以添加“where”子句作为参数之一,将结果集缩小为仅发布的文档:

[[getResources?
                &parents=`4`
                &resources=`' . $ids . '`
                &limit=`0`
                &showHidden=`1`
                &tpl=`PropItemTPL`
                &sortby=`menuindex ASC, id`
                &sortdir=`ASC`
                &includeContent=`1`
                &includeTVs=`1`
                &processTVs=`1`
                &where=`{"published" : true}`
           ]]

答案 1 :(得分:0)

resources参数与选择逻辑的其余部分分开。如果您在资源属性中包含资源的ID,则无论其他任何选择属性如何,都将包含该资源。

试试pdoResources,我不认为你会遇到这个问题。它也比getResources快得多。