WordPress标题中的“-”被转义为“&#8211”怎么办?

三好酋长昨天在“百度搜索资源平台”公众号里看到《百度搜索网页标题规范:让标题回归标题本身》一文,其中有建议把” _ ——“等间隔符统一改成” – “。于是三好酋长修改Twentyten主题的header.php,把title中的分隔符由 | 修改为 – ,可是查看网页,发现 – 变长了,于是查看网页源代码,发现 – 竟然被转义显示成了 – 。怎么办呢?

三好酋长在网上搜索了好久,竟然没有找到满意的解决方法,后来自己琢磨了一下,应该只要取消title中的字符转义就行了,于是在functions.php中添加了如下代码:

remove_filter('wp_title', 'wptexturize');

PS: 可能有的主题需要把wp_title换成the_title。

结果成功阻止了标题中的”-“被转义为”–”。

补充:为了保险,可以把可能的title函数都加上,所以完整代码是:

/**
 * 阻止title中的“-”被转义成“& #8211;”
 * https://www.run1314.com/remove_filter-wp_title-wptexturize/
 */
remove_filter('the_title', 'wptexturize');
remove_filter('wp_title', 'wptexturize');
remove_filter('single_post_title', 'wptexturize');
add_filter( 'run_wptexturize', '__return_false' );

20200513更新:

随着WordPress版本的更新,还有主题繁多,以上代码失效了,这时候我们可以干脆禁用wptexturize()函数。代码如下:

/**
 * 禁用wptexturize函数
 * https://www.run1314.com/remove_filter-wp_title-wptexturize/
 */
add_filter( 'run_wptexturize', '__return_false' );

You may also like...

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注