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

能否在TYPO3条件中比较两个TypoScript函数?求语法方案

TYPO3条件语句中比较TypoScript函数的可行方案

一、正确的条件语法

可以直接在TYPO3条件语句中比较这两个函数的返回值,但需改用严格类型比较运算符===,避免因类型隐式转换或字符串细节差异导致判断失效。修正后的代码如下:

[site("base").getHost() === request.getRequestHostOnly()]
    page.headerData.850193 = COA
    page.headerData.850193 {
      10 = TEXT
      10.wrap (
<script>
!function(f,b,e,v,n,t,s) 
// 你的Facebook像素代码
</script>
      )
    }
[global]

原写法失效原因

你之前使用==进行比较,该运算符会进行隐式类型转换,若两个函数返回值存在细微差异(如大小写、隐形空格或端口隐含处理不同),就会导致判断不匹配。===会同时检查值和类型,判断更精准。

二、替代解决方案

如果上述条件仍不符合需求,可尝试以下更灵活的方案:

  • 直接枚举允许的主机:若站点主机固定,直接指定主机列表,避免函数调用的潜在问题:

    [request.getRequestHostOnly() === "your-domain.com" || request.getRequestHostOnly() === "www.your-domain.com"]
        // Facebook像素加载代码
    [global]
    
  • 使用站点自定义配置:在站点配置的「站点设置」中添加allowedHosts = your-domain.com,www.your-domain.com,再通过TypoScript读取配置判断:

    [request.getRequestHostOnly() in site("base").configuration.allowedHosts]
        // Facebook像素加载代码
    [global]
    
  • 后端逻辑控制:若需要更复杂的判断(如排除特定路径、验证请求来源),可开发简单扩展,通过控制器或Hook来控制像素加载,灵活性更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 04:27:19