防止WordPress自动将站点标题中“-”自动转义成–
我们知道WordPress有些自动功能,出于安全的考虑或者外国人的习惯问题,经常有点有点水土不服的意味。当然WordPress也是过于好心了,毕竟全世界这么多的站点都是运行着WordPress,只能照顾到大部分的需求,而不能精准解决部分人的要求了。否则也不会有数以万计的插件、主题了。毕竟,有了这个平台,怎么搭建出符合自己要求的网站,就是各有各的想法和实现的过程了。
而WordPress的自动转义,是使用了wptexturize()函数将纯文本字符转换成格式化的 HTML 实体,即形如–会转换成–这样的文本,显示的时候是没有问题,但是查看源代码是可以看到的。另外某些搜索引擎是没有差异化的对待转义后的实体,直接收录。
这时候也不是那么好看了,特别是某些时候还会变的比较凌乱。因此需要从侧面来解决这个问题,使之不那么“自动化智能化”。关于wptexturize()函数的介绍在WordPress的官网上有https://developer.wordpress.org/reference/functions/wptexturize/,Replaces common plain text characters into formatted entities ,大致的意思是将普通纯文本字符替换为格式化实体。函数是在wp-includes/formatting.php 这个文件中的,51行开始,一直到315行的样子,简单摘录下:
function wptexturize( $text, $reset = false )
{ global
$wp_cockneyreplace,
$shortcode_tags;
static $static_characters = null,
$static_replacements = null,
$dynamic_characters = null,
$dynamic_replacements = null,
$default_no_texturize_tags = null,
$default_no_texturize_shortcodes = null,
$run_texturize = true, $apos = null,
$prime = null, $double_prime = null,
$opening_quote = null, $closing_quote = null,
$opening_single_quote = null,
$closing_single_quote = null,
既然知道代码函数了,那么要解决也比较有针对性了,根据网上其他人的指引,大概有三个方法:
方法一,使用插件。
Quotmarks Replacer 插件可以通过禁用 wptexturize 函数,解决 WordPress 自动将半形的单引号、双引号和省略号转换为全形标点的问题。使后台输入的标点格式与前台读者浏览的标点格式保持一致。并且对 multisite 多站点(WordPress Mu)有良好的支持。插件可以在WordPress官网下载https://wordpress.org/plugins/quotmarks-replacer/#description
方法二,禁用该函数。
通过把该代码加到functions.php函数中,即可实现相应的结果。
add_filter( 'run_wptexturize', '__return_false' );
方法三,禁止函数对标题的转义
通过如下的代码来完成:
remove_filter('the_title', 'wptexturize');<br>remove_filter('wp_title', 'wptexturize');<br>remove_filter('single_post_title', 'wptexturize');
这样的话就不会出现在站点标题、页面的标题中出现的–字符。
如上三种方法在网上都有相应的介绍,但测试了二、三方法,二可以达到效果,三却不行。不知道是否WordPress升级后的原因引起。
另外如果把wp-includes/formatting.php中的116行这行注释掉,会是这样的效果,-消失了。但文章页面依然存在转义的情况。
$en_dash = _x( '–', 'en dash' );
然后突然回过头来试用下方法二,发现仅对首页首页有效,对单独的文章页面与图4一致。看来还是不得其法,并没有完全解决这个问题。各位有没有更好的方法?
另外也是实际没有特别的效果,因此暂告一段落。
延伸介绍
Quotmarks Replacer:引号替换器
引号替换器禁用wptexturize将所有引号和暂停点保持为半角形式的功能。此插件也适用于启用多站点的 WordPress(又名 WordPress Mu)。
Quotmarks Replacer 通过禁用wptexturize函数,解决 WordPress 自动将半形的单引号、双引号和省略号的转换为全形标准。输入的标准点格式与前台读者浏览的标准点格式一致。 (WordPress Mu)有很好的支持
本文地址:http://seo.youqingshuyuan.com/13041.html
版权声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系我们。