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

Way to have getResources not show unpublished IDs if given a list of IDs

我有一个 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?

您可以添加 "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}`
           ]]

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

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