当前位置:首页>WordPress建站>网站SEO>正确禁止 WordPress 转义 title 标题中的分隔符破折号 – 和 & 符号

正确禁止 WordPress 转义 title 标题中的分隔符破折号 – 和 & 符号

默认情况下,WordPress 会将title标题中的 破折号 -& 等特殊符号进行转义,比如 - 转义为 –& 转义为 &。某些SEO人员说这个会引发SEO方面的问题,其实这个说法没有任何依据。但是,如果你真的很在乎这个所谓的问题,可以根据本文的教程解决。

禁止 WordPress 转义 title 标题中的破折号 - 和 & 号等特殊符号 - Decode Title Entities

WordPress 为什么要转义特殊字符

一句话,为了安全。通过转义,可以避免某些情况下的恶意代码输出。当然,这种情况极少出现(我们也不知道如何恶意)。转义的代码结果在我们看来是不会对SEO产生不利影响的,否则WordPress官方开发团队也不会这样做。

不推荐的或无效的处理方法

不推荐的方法

网络上给出的解决方法大多数是直接全局禁用 wptexturize 功能这种做法是不推荐的!!因为在其他的一些场景中,通过转义增强安全性还是很有必要的。

add_filter('run_wptexturize', '__return_false');

失效的方法

似乎从 WordPress 4.4 开始,WordPress 就建议采用 add_theme_support( 'title-tag' );启用 document title 来输出标题,不再使用 wp_title() 函数直接输出标题。

所以,以下方法在现在的大部分主题中应该都不再生效了,除非你用的主题是老古董。

remove_filter('the_title', 'wptexturize');
remove_filter('wp_title', 'wptexturize');
remove_filter('single_post_title', 'wptexturize');

正确的禁止 title 转义的方法

现代 WordPress 主题基本采用 add_theme_support( 'title-tag' );启用 document title 来输出标题,在标题的输出函数 wp_get_document_title() 的最末端有一个过滤钩子 document_title,我们需要做的就是通过它来将转义后的内容反转义为正常输出,该方法不需要全局禁用 wptexturize,所做的影响仅限于标题输出。

完整的代码如下:

/**
 * 禁止 WordPress 转义 title 标题中的破折号 - 和 & 号等特殊符号
 * https://www.wpdaxue.com/disable-title-wptexturize.html
 */
function wpdx_decode_title_entities($title) {
    if (isset($title)) {
        $title = html_entity_decode($title, ENT_QUOTES, 'UTF-8');
    }
    return $title;
}
add_filter('document_title', 'wpdx_decode_title_entities');

一般来说,将上面的代码添加到当前主题的 functions.php 或其他插件代码中即可。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA打赏
共{{data.count}}人
人已打赏
欢迎关注WordPress大学公众号 WPDAXUE
网站SEO

加快 WooCommerce 网站速度的 15 个实用步骤

2024-3-14 19:53:04

WordPress插件后台定制

几个好用的WordPress媒体库分类/文件夹管理插件

2020-7-11 10:51:09

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索