1 回答
TA贡献1785条经验 获得超8个赞
我认为您的问题可能是$post_id
没有正确定义或没有传递给回调。另请注意,wp_title
自 WordPress 4.4 起已弃用,并且不适用于 5.4。
无论如何,WordPress 有一个get_post_type()函数,可以简化事情。大多数 WordPress 功能不需要帖子 ID,它们将默认为全局$post
对象。
add_filter('pre_get_document_title', function($title) {
$postType = get_post_type();
if( $postType === 'product' || $postType === 'product_variation') {
$title = str_replace(' .co.uk', '', get_the_title());
}
return $title;
}, 99);
正如您在下面所说的,帖子标题已手动更新,并.co.uk在 Yoast SEO 片段标题中添加了附加内容。
假设您有权访问数据库,纠正此问题的最佳方法是更新标题,完全消除问题,而不是尝试对其进行修复。
Yoast 将其标题存储在postmetaWordPress 数据库的表中,键为_yoast_wpseo_title。要替换.co.uk这些标题中的所有添加内容,您可以运行如下查询:
UPDATE `database_name`.`postmeta`
SET meta_value = REPLACE(meta_value, ' .co.uk', '')
WHERE meta_key = '_yoast_wpseo_title'
确保更改上面的查询,以便这database_name是 WP 数据库的正确名称,如果数据库表名称有前缀,也请设置正确的表名称postmeta。
- 1 回答
- 0 关注
- 82 浏览
添加回答
举报