WordPress发布文章禁止转义内容是为了让一些参数在不被自动被更改的条件下,能正确显示他的作用的一种方法。

比如,我们是提供编程技术教程方法分享的平台,这时候我们发布的文章很多就包含编程语言,而这些语言通常都是以函数、小数、分数等的方式输出才能正常使用的。WordPress发布文章禁止转义内容的方法-第0张图片

这时候,如果我们用wordpress发表文章,默认的wordpress会将一些参数自动更改,这就会导致编程教学出错,无法正确提供给学者。

因此,为了避免这一错误的发生,我们在使用WordPress发布文章的时候,有时候我们可能需要禁止这个功能。但考虑到有些文章又不需要禁止,或者是为了安全考虑也不需要禁止。因此,我结合不同的需求,整理了以下相关方法供大家一起学习参考。

前言:

在WordPress中,默认情况下,为了防止跨站脚本攻击(XSS)和其他安全问题,WordPress会自动对发布的内容进行转义(escaping)。这意味着一些特殊字符(如 `<`, `>`, `&`, `"`, `'` 等)会被转换成 HTML 实体(如 `&lt;`, `&gt;`, `&amp;`, `&quot;`, `&#039;` 等)。

然而,在某些情况下,你可能希望在文章中直接使用HTML标签而不希望它们被转义。虽然直接禁用全局的转义功能是不推荐的(因为这可能会带来安全风险),但你可以采取一些方法来在特定情况下避免转义:

教程:

通常我们可以直接使用“remove_filter('the_content', 'wptexturize');”来禁止全站文章转义。但是,这会导致全站发布的不管是文章还是页面都不被转义。

而我们在实际使用中,可能只需要对特定的文章进行限制禁止转义。因此,我们其实还可以通过以下的方法来对不同的文章,内容结构禁止转义。

1. 使用 “wp_kses()”函数

“wp_kses()”是WordPress提供的一个函数,允许你过滤并允许特定的HTML标签和属性。你可以在你的主题或插件中使用这个函数来自定义允许哪些HTML内容。

php
$allowed_html = array(
'a' => array(
'href' => array(),
'title' => array(),
),
'b' => array(),
'i' => array(),
// 添加你需要的其他标签和属性
);

$clean_content = wp_kses($raw_content, $allowed_html);

2. 使用 “do_shortcode()”和自定义短代码

如果你需要在文章中插入复杂的HTML或JavaScript,你可以考虑使用WordPress的短代码功能。通过创建自定义短代码,你可以在文章中插入特定的短代码,然后在函数文件中处理这些短代码以输出所需的HTML或JavaScript。

php
// 在functions.php中添加自定义短代码
function my_custom_shortcode_function() {
return '<div class="custom-content">这里是我的自定义内容</div>';
}
add_shortcode('my_custom_shortcode', 'my_custom_shortcode_function');

// 在文章中使用短代码
[my_custom_shortcode]

3. 使用 “raw_content”自定义字段

如果你只需要在特定页面或文章上禁用转义,你可以添加一个自定义字段(例如 “raw_content”),然后在模板文件中检查这个字段并直接输出其内容,而不进行转义。

php
// 在模板文件中
if (get_post_meta($post->ID, 'raw_content', true)) {
echo get_post_meta($post->ID, 'raw_content', true);
} else {
the_content();
}

注意事项

安全风险:直接输出未经转义的内容可能会使你的网站容易受到XSS攻击。因此,在采取任何措施之前,请确保你了解这些风险,并只在必要时使用。

备份:在修改任何代码或模板之前,请确保你已经备份了你的网站。

测试:在将更改应用到生产环境之前,请在测试环境中彻底测试它们。