基于ACF与自定义内容短代码实现状态字段条件变色显示
解决方案
不用额外的CSS文件或PHP代码,直接在短代码中嵌套内联HTML样式就能实现需求。核心思路是当field_status匹配Not Playable对应的字段值时,用<span style="color:red;">包裹状态文本,其他情况正常输出即可。
修正后的完整短代码(精确匹配版本)
[repeater fieldslist] <!-- 匹配"Not Playable"对应的字段值,这里假设值为not-playable,需与ACF设置一致 --> [if field=field_status value=not-playable] - **[field name_of_the_field] -** <span style="color:red;">[field field_status]</span> [/if] <!-- 匹配"Playable"状态 --> [if field=field_status value=Playable] - **[field name_of_the_field] -** [field field_status] [/if] <!-- 匹配"please-select"状态 --> [if field=field_status value=please-select] - **[field name_of_the_field] -** [field field_status] [/if] [/repeater]
简化版本(用else合并非红色状态)
如果除了Not Playable之外的所有状态都需要正常显示,可以用[else]简化代码,减少重复:
[repeater fieldslist] [if field=field_status value=not-playable] - **[field name_of_the_field] -** <span style="color:red;">[field field_status]</span> [else] - **[field name_of_the_field] -** [field field_status] [/if] [/repeater]
注意事项
- 确保
value=后面的内容和ACF下拉字段中设置的实际选项值完全一致(比如是not-playable还是Not Playable,要对应ACF的配置) - 原代码中
contains=not-playble存在拼写错误(应为not-playable),且contains可能会误匹配包含该字符串的其他值,建议用value=做精确匹配
内容的提问来源于stack exchange,提问作者samtallen
相关产品推荐
相关产品推荐

