当用户不是管理员时,发布帖子会剥离自定义html元素

时间:2019-04-11 作者:Michael_H

此现象发生在Wordpress从4.9.10更新到5.1.1之后。我正在使用TinyMCE Advanced、Classic Editor和Advanced Custom Fields PRO插件。wordpress安装具有admin和testrole角色。

我以testrole身份登录并插入自定义html元素<p><new-page></new-page></p>在帖子中所见即所得编辑器类型的自定义字段中,单击发布发布发布帖子。<p><new-page></new-page></p> 替换为<p></p>.

以管理员身份登录时,不会进行替换。

如何防止wordpress替换<p><new-page></new-page></p> 具有<p></p> 何时以testrole身份登录?

2 个回复
最合适的回答,由SO网友:Michael_H 整理而成

将以下代码附加到wp config。php

define(\'CUSTOM_TAGS\', true );
$allowedposttags = array();
$allowedtags = array();
$allowedentitynames = array();
从web/wp includes/kses复制$allowedposttags、$allowedtags和$AllowedEntityName的值。php并将它们分配给wp config中的变量$allowedposttags、$allowedtags和$AllowedEntityName。php。将“new page”=>array()作为元素添加到分配给$allowedposttags的数组中。

SO网友:WebElaine

允许您的特定<new-page> 元素,您可以添加过滤器,以便WP将其识别为允许的标记:

// Step one - add to the allowed tags
add_action(\'init\', function() {
    // Access the global allowed tags array
    global $allowedtags;
    // Add new-page as an allowed tag
    $allowedtags[\'new-page\'] = array();
    // If you ever use attributes such as <new-page href="url" title="My Title">
    // Then you\'ll need to include those within the array like so:
    // $allowedtags[\'new-page\'] = array(\'href\' => array(), \'title\' => array());
});

// Step two - add to allowed tags in TinyMCE (the editor)
add_filter(\'tiny_mce_before_init\', function($a) {
    $a[\'extended_valid_elements\'] = \'new-page\';
    // Again if you ever need attributes, you\'ll specify those here
    // $a[\'extended_valid_elements\'] = \'new-page[href|title]\';
    return $a;
});
因为这段代码是专门为TinyMCE编写的,所以您必须进行测试,以确定它是与块编辑器一起工作,还是仅与Classic一起工作。如果编辑器无法使用它,您还可以选择创建一个短代码或一个块来输出所讨论的标记。

相关推荐