A-A+

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

2018年11月24日 Web之旅

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

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

remove_filter('wp_title', 'wptexturize');

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

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

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

/**
 * 阻止title中的“-”被转义成“& #8211;”
 * https://www.3haow.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.3haow.com/remove_filter-wp_title-wptexturize/
 */
add_filter( 'run_wptexturize', '__return_false' );
标签:

给我留言