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

TYPO3移除重复og:title标签:特定页面服务端方案求助

解决TYPO3中jh_opengraphprotocol扩展导致og:title重复的问题

针对你遇到的LinkedIn仅识别第一个默认og:title的问题,服务端层面的处理才是可靠的解决方案,下面提供几个实用方案,你可以根据场景选择:

方案1:通过扩展配置禁用特定页面的默认og:title

优先推荐查看jh_opengraphprotocol的配置选项,尝试在目标页面的TypoScript配置中添加:

plugin.tx_jhopengraphprotocol.settings.title = 0

如果扩展支持该配置,就能直接阻止默认og:title标签生成,从根源避免重复。

方案2:在控制器中先清理默认标签再添加动态标签

如果仅需在特定控制器/动作中处理,可以在添加自定义动态og:title前,先移除扩展生成的默认标签:

// 获取当前已有的header数据
$existingHeaderData = $this->response->getAdditionalHeaderData();

// 用正则匹配并移除默认og:title标签(根据实际输出调整正则细节)
$cleanedHeaderData = preg_replace('/<meta name="og:title" content="detail"\/?>/', '', $existingHeaderData);

// 更新header数据
$this->response->setAdditionalHeaderData($cleanedHeaderData);

// 添加自定义动态og:title
$this->response->addAdditionalHeaderData('<meta name="og:title" content="' . $annonce->geraAdvertTitle() . '"/>');

方案3:使用TYPO3页面钩子全局处理特定页面

如果需要在多个页面或全局范围内针对特定页面处理,可通过TYPO3页面钩子实现:

  1. 在自定义扩展的ext_localconf.php中注册钩子:
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_fe.php']['contentPostProc-output'][] = \YourVendor\YourExtension\Hooks\OgTitleCleanup::class . '->removeDefaultOgTitle';
  1. 创建钩子类OgTitleCleanup.php:
namespace YourVendor\YourExtension\Hooks;

class OgTitleCleanup {
    public function removeDefaultOgTitle(array $params) {
        $content = $params['pObj']->content;
        
        // 判断当前是否为目标页面(替换成你的页面UID或其他判断条件)
        if ($GLOBALS['TSFE']->id === 123) {
            // 移除默认og:title标签
            $content = preg_replace('/<meta name="og:title" content="detail"\/?>/', '', $content);
            $params['pObj']->content = $content;
        }
        
        return $content;
    }
}

该方案会在页面输出前拦截处理内容,确保特定页面仅保留你自定义的动态og:title标签。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:56:35