WordPress 符号标签编码转义为HTML实体函数esc_HTML

        WordPress系统函数 esc_HTML() 主题插件开发中常用的wordpress函数之一,其作用是把各种字符转义成 HTML 实体,如小于号(<)、大于号(>)、与(&)、双引号(””)、单引号(”)等,如果已经是 HTML 实体的字符则不会再转义。通过该函数就可以输出完整的字符串,即使字符串带有 HTML 标签,如“字体加粗”,而不仅仅是加粗后的“字体加粗”四个文字。

代码结构

<?php esc_html( $text ) ?>

参数说明

        $text – (字符串)(必须)要转义为 HTML 实体的字符串,默认值为空,会返回已经编码转义为 HTML 实体的文本

代码示例

<?php 
	$html = '<a href="https://www.nongyejing.com" title="农业经">农业经</a>';
	$esc = esc_html($html);
	echo $esc;
?>

上面的代码的输出结果是:
        <a href=”https://www.nongyejing.com” title=”农业经”>农业经</a>
而不是
        农业经

WordPress编辑器切换自动转义实体符号

相信不少使用WordPress编辑器撰文的站长是直接使用 HTML 编辑器的,清枫就是如此,因为可视化格式的东西太多,有时候无法忍受,总之,各有利弊。小编在使用 HTML 编辑器编辑时遇到的最大的问题就是高亮代码里的<和>总是会因为没有转义而使得文章排版错乱,今天在网上浏览各种教程的时候看到了自动转义的方法,遂分享给大家。

转换至实体的符号:<、>、&

支持的标签:<pre><code>,用到的函数:htmlspecialchars()此函数把一些预定义的字符转换为 HTML 实体。将以下代码扔到 functions.php,记得把 6、7、8 行的空格去掉

function escapeCE($arr) {
if (version_compare(PHP_VERSION, ‘5.2.3’) >= 0) { //所需PHP版本
$output = htmlspecialchars($arr[2], ENT_NOQUOTES, get_bloginfo(‘charset’), false);
} else {
$needTo = array( //定义需要转换的标签
‘&’ => ‘&’,
‘<‘ => ‘<‘,
‘>’ => ‘>’
);
$data = htmlspecialchars_decode($arr[2]);
$output = strtr($data, $needTo);
}
if (! empty($output)) { //如果有实体符号则进行替换
return $arr[1] . $output . $arr[3];
} else {
return $arr[1] . $arr[2] . $arr[3];
}
}
function replaceCE($data) { //匹配需要转换实体的标签
$replaceTag = preg_replace_callback(‘@(<pre.*>)(.*)(
 
)@isU’, ‘escapeCE’, $data);
$replaceTag = preg_replace_callback(‘@(<code.*>)(.*)()@isU’, ‘escapeCE’, $replaceTag);
return $replaceTag;
}
add_filter( ‘content_save_pre’, ‘replaceCE’, 9 ); //通过wordpress的add_filter来挂钩
add_filter( ‘excerpt_save_pre’, ‘replaceCE’, 9 ); //支持摘要格式

当然,我们已经将这串代码已经放到主题里了,麻麻再也不用担心我码错代码了!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值