【问题标题】:How to edit the html of frontend code before output on wordpress.如何在 wordpress 上输出之前编辑前端代码的 html。
【发布时间】:2018-07-11 23:44:36
【问题描述】:

特别是我正在开发一个插件,但坚持编辑前端 html。 wordpress 是否有任何过滤器或功能来编辑页面的 html?

【问题讨论】:

    标签: php wordpress plugins


    【解决方案1】:

    基本上,WordPress 的构建方式不允许您这样做。它只是在需要时继续推送其输出,并且当您执行任何过滤器时,它要么在任何输出发生之前(因此您无需修改​​)或之后(因此它已经离开浏览器)。

    您可以尝试一个选项:使用输出缓冲。您可以在初始化时启动自己的输出缓冲区,在关闭时捕获它,然后利用最后的机会修改输出。

    大体如下:

    add_action('init', 'ob_start');
    add_action('shutdown', function () {
        $html = ob_get_clean();
        $hmtl = morbvel_modify_html($html);
        echo $html;
    });
    

    AFAIR,WordPress 已经对shutdown 执行了一项操作,该操作会清除所有输出缓冲区。您可以检查它的源代码,看看分配给 shutdown 挂钩的优先级以使其工作。

    PS。作为一个 WordPress 用户,我不喜欢插件来做这样的事情——我担心你的代码会破坏我精心制作的令人敬畏的 html 输出中的某些内容。但你可能会像找到忠实的客户一样幸运。

    【讨论】:

    • 我在我的项目中使用输出缓冲,因为某些函数会回显而不是返回,这是一件好事,但它不会像 JavaScript 那样以良好的 php 方式返回 dom,所以我的代码可能太多了像在某处添加html这样的操作很难看,由于这种缓冲,我也认为速度会很慢。但无论如何这是一个很好的答案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-11
    相关资源
    最近更新 更多