机库阁 TroubleShooting 如何解决WordPress模板将双中横线“–”转义成了单中横线的问题“-”

如何解决WordPress模板将双中横线“–”转义成了单中横线的问题“-”

点击数:0

今天在浏览自己写的文档的时候,发现复制粘贴命令执行后报错,仔细一看,命令中的–在页面中显示为单横线-,结合网上的几个方法,找了一个最简单适合的方案,问题解决。

现象:

譬如WordPress后台编写的代码为:
./config shared –openssldir=/data/install/openssl –prefix=/data/install/openssl
但是编写完发布后,在浏览器中显示为:
./config shared -openssldir=/data/install/openssl -prefix=/data/install/openssl
莫名的少了一个横杠,就会产生问题

原因:

网上的说法,主要是WordPress的标题或者正文当中,如果带有横杠“-”的话,查看页面源代码title的时候就会发现横线会被转义为”–”,正文就会看到少了一个横杠。

解决方案:

方法一:禁用所有的 WP 转义

wordpress 自带一个专一的钩子 wptexturize,很多地方都用到了这个钩子,具体可以看看 wp 的 wp-includes/formatting.php 中看看。我们可以通过以下代码(取自水煮鱼)来取消掉这个转义:

add_filter( 'run_wptexturize', '__return_false' );

我是增加在如下图示的位置:

方法二:禁用部分的 WP 转义(推荐)

为了解决本文标题描述的这个问题,可以只是禁止 wptexturize 对标题的转义:

/** 
* WordPress 标题中的横线“-”被转义成“–”的问题 - 龙笑天下 
* https://www.ilxtx.com/wordpress-html-entity-decode-title.html 
* 20181213 更新:wp_title、single_post_title、single_cat_title、get_the_title、single_tag_title 
*/ 
remove_filter('the_title', 'wptexturize'); 
remove_filter('wp_title', 'wptexturize'); 
remove_filter('single_post_title', 'wptexturize');

方法三:把下方代码复制放到 function 文档里:

function HTML_entity_decode_title($title) 
{ 
    $title = str_replace("–", "-", $title); 
    $title = html_entity_decode($title); 
    return $title; 
} 
add_filter('the_title', 'html_entity_decode_title'); 
add_filter('wp_title', 'html_entity_decode_title');
本文来自网络,不代表机库阁立场,转载请注明出处:http://www.jikuge.com/145/

作者: zhuifeng

上一篇
下一篇

发表回复

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

关注微博
返回顶部