You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Concrete5:同一页面多页面列表去重技术问题

解决Concrete5主页两个Page List块内容重复的问题

我来分享几个针对这个场景的靠谱解决方案,都是Concrete5开发中处理页面列表重复的常用方法:

方案1:直接通过Page List块的过滤规则排除特色页面(简单快捷)

如果你的需求是红色列表只展示非特色页面(完全排除is_featured=true的页面),这是最省事的做法:

  • 编辑红色的Page List块,进入「过滤」选项卡
  • 在「页面属性过滤」区域,添加一条规则:选择is_featured属性,条件设为「不等于」,值选true
  • 保存块配置,这样红色列表就只会显示非特色页面,和绿色特色列表完全不重复

方案2:自定义PHP过滤(灵活处理复杂场景)

如果你的需求是红色列表可以包含特色页面,但要排除已经在绿色块里展示的具体页面(比如绿色展示最新3个特色,红色展示最新6个页面但去掉这3个),可以用Concrete5的自定义过滤回调:

  1. 先给绿色的Page List块设置固定排序(比如按发布时间倒序),确保展示的页面是固定的一批
  2. 编辑红色的Page List块,进入「高级」选项卡
  3. 在「自定义PHP过滤代码」文本框中,添加以下代码:
// 获取绿色块展示的特色页面ID(假设绿色块展示3个)
$featuredPageIDs = [];
$featuredPages = PageList::getByAttribute('is_featured', true)->sort('publication_date', 'desc')->limit(3);
foreach ($featuredPages as $page) {
    $featuredPageIDs[] = $page->getCollectionID();
}
// 排除这些ID的页面
return !in_array($page->getCollectionID(), $featuredPageIDs);
  1. 保存块配置,这样红色列表就会自动排除绿色块已经展示的特色页面,同时保留其他所有页面(包括未被绿色展示的特色页面,如果有的话)

方案3:使用自定义页面列表模板(适合深度定制场景)

如果需要更灵活的样式或逻辑控制,可以给红色列表创建一个自定义模板:

  1. 在主题的blocks/page_list/templates目录下新建模板文件,比如exclude_featured.php
  2. 在模板中先获取绿色块的特色页面ID集合,再在循环输出时跳过这些ID:
<?php
// 获取特色页面ID
$featuredPageIDs = [];
$featuredList = new PageList();
$featuredList->filterByAttribute('is_featured', true);
$featuredList->sort('publication_date', 'desc');
$featuredList->limit(3);
foreach ($featuredList->getResults() as $fPage) {
    $featuredPageIDs[] = $fPage->getCollectionID();
}
?>

<!-- 红色列表的HTML结构 -->
<div class="red-highlight-list">
    <?php foreach ($pages as $page): ?>
        <?php if (!in_array($page->getCollectionID(), $featuredPageIDs)): ?>
            <div class="list-item">
                <h3><?php echo $page->getCollectionName(); ?></h3>
                <!-- 其他页面内容 -->
            </div>
        <?php endif; ?>
    <?php endforeach; ?>
</div>
  1. 编辑红色的Page List块,在「模板」选项卡中选择这个自定义模板即可

注意:如果后续调整了绿色块展示的页面数量(比如从3个改成5个),记得同步修改代码里的limit(3)参数,保证排除的ID数量匹配。

内容的提问来源于stack exchange,提问作者ugotchi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:34:51