You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何WordPress将TinyMCE编辑器中的PHP标签替换为HTML注释?

为啥WordPress的TinyMCE会把PHP标签转成注释?怎么解决?

嘿,这个问题我太熟了!咱先搞清楚根源:这是WordPress和TinyMCE自带的安全保护机制。

WordPress从安全角度出发,默认会严格过滤文章/页面内容里的PHP代码——毕竟要是随便允许用户在编辑器里插入可执行的PHP,很容易被黑客利用搞事情。TinyMCE编辑器会配合这个规则,自动把<?php ... ?>这类PHP标签转换成HTML注释格式<!--?php ... ?-->,既避免代码被执行,也防止恶意注入。

接下来分两种情况给你解决方案:

情况1:只是想展示PHP代码(不需要执行)

如果你的需求是把代码作为示例展示给访客看,不用折腾复杂操作:

  • 直接用WordPress编辑器的代码块:在编辑器里点击添加块,搜索“代码”,选择后在里面输入你的PHP代码,它会自动帮你转义特殊字符,保存后再编辑也不会被篡改,还能自带语法高亮。
  • 要是你习惯手动写标签,记得把特殊字符转义:把<?php写成&lt;?php,?>写成?&gt;,这样编辑器就不会把它识别为可执行代码,而是纯文本展示。

情况2:需要实际执行PHP代码

绝对不能直接在编辑器里写PHP!WordPress的内容过滤系统(比如kses函数)会直接干掉它,而且风险极高。正确的做法是:

  • 自定义短代码:打开主题的functions.php文件,添加一段类似这样的代码:
    function hello_world_shortcode() {
        return "Hello World";
    }
    add_shortcode('hello_world', 'hello_world_shortcode');
    
    保存后,在文章里输入[hello_world],发布页面后就会自动执行这段PHP并显示结果。
  • 自定义页面模板:如果是特定页面需要PHP逻辑,复制主题的page.php文件,重命名为page-custom.php,在文件顶部添加模板声明:
    <?php
    /*
    Template Name: 自定义PHP页面
    */
    get_header();
    // 这里写你的PHP代码
    echo "Hello World";
    get_footer();
    ?>
    
    然后在后台编辑页面时,右侧“模板”选项里选择“自定义PHP页面”即可。
  • 靠谱的插件辅助:比如用“Insert PHP Code Snippet”这类插件来管理和插入PHP代码,但一定要选择官方库评分高、更新活跃的插件,避免安全隐患。

内容的提问来源于stack exchange,提问作者DBarkz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:59:23