防止WordPress自动将站点标题中“-”自动转义成&#8211

 杭州seo优化   2022-06-16 08:38   48 views 人阅读  0 条评论

防止WordPress自动将站点标题中“-”自动转义成&#8211

我们知道WordPress有些自动功能,出于安全的考虑或者外国人的习惯问题,经常有点有点水土不服的意味。当然WordPress也是过于好心了,毕竟全世界这么多的站点都是运行着WordPress,只能照顾到大部分的需求,而不能精准解决部分人的要求了。否则也不会有数以万计的插件、主题了。毕竟,有了这个平台,怎么搭建出符合自己要求的网站,就是各有各的想法和实现的过程了。
而WordPress的自动转义,是使用了wptexturize()函数将纯文本字符转换成格式化的 HTML 实体,即形如–会转换成–这样的文本,显示的时候是没有问题,但是查看源代码是可以看到的。另外某些搜索引擎是没有差异化的对待转义后的实体,直接收录。

防止WordPress自动将站点标题中“-”自动转义成&#8211

这时候也不是那么好看了,特别是某些时候还会变的比较凌乱。因此需要从侧面来解决这个问题,使之不那么“自动化智能化”。关于wptexturize()函数的介绍在WordPress的官网上有developer.wordpress.org,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官网下载wordpress.org/plugins/q

方法二,禁用该函数。
通过把该代码加到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');

这样的话就不会出现在站点标题、页面的标题中出现的&#8211字符。
如上三种方法在网上都有相应的介绍,但测试了二、三方法,二可以达到效果,三却不行。不知道是否WordPress升级后的原因引起。

防止WordPress自动将站点标题中“-”自动转义成&#8211

另外如果把wp-includes/formatting.php中的116行这行注释掉,会是这样的效果,-消失了。但文章页面依然存在转义的情况。

$en_dash = _x( '&#8211;', 'en dash' );
防止WordPress自动将站点标题中“-”自动转义成&#8211

防止WordPress自动将站点标题中“-”自动转义成&#8211

然后突然回过头来试用下方法二,发现仅对首页首页有效,对单独的文章页面与图4一致。看来还是不得其法,并没有完全解决这个问题。各位有没有更好的方法?
另外也是实际没有特别的效果,因此暂告一段落。

延伸介绍

Quotmarks Replacer:引号替换器

引号替换器禁用wptexturize将所有引号和暂停点保持为半角形式的功能。此插件也适用于启用多站点的 WordPress(又名 WordPress Mu)。

Quotmarks Replacer 通过禁用wptexturize函数,解决 WordPress 自动将半形的单引号、双引号和省略号的转换为全形标准。输入的标准点格式与前台读者浏览的标准点格式一致。 (WordPress Mu)有很好的支持

写在结尾:以上就是防止WordPress自动将站点标题中“-”自动转义成&#8211的详细内容,更多请关注【杭州SEO博客】其它相关文章!
本文地址:http://seo.huashi123.cn/13041.html
版权声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系我们。
NEXT:已经是最新一篇了

 相关文章  关键词:

 发表评论


表情