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

Twig/Timber实现WordPress文章按ACF字段排序无匹配文章时报错

问题原因

该报错是因为当WordPress查询无匹配文章时,模板拿到的posts变量为null或空值,Twig的sort过滤器无法对非迭代的空值对象执行排序操作,进而抛出类型错误。

修复方案

方案1:利用Twig for循环的else分支兼容空场景

直接给posts变量加空值默认兜底,空状态下自动走else分支提示,无需额外写if判断:

{% for post in posts|default([]) | sort((a, b) => b.litter_born <=> a.litter_born) %}
{# 原有拉取文章数据的逻辑 #}
{% else %}
<p>暂无匹配的宠物文章</p>
{% endfor %}

方案2:额外兼容部分文章无litter_born字段的场景

如果存在部分宠物文章未设置litter_born ACF字段的情况,可以在排序逻辑里给字段也加默认值,避免二次报错:

{% for post in posts|default([]) | sort((a, b) => (b.litter_born|default(0)) <=> (a.litter_born|default(0))) %}
{# 原有拉取文章数据的逻辑 #}
{% else %}
<p>暂无匹配的宠物文章</p>
{% endfor %}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 11:45:08