从编辑器内容中删除所有表格宽度

时间:2019-05-07 作者:Krystle

当我将表格粘贴到WordPress编辑器中时,我总是得到如下宽度<td width="232">.

我想在将表格添加到编辑器时删除所有宽度。

如果是regex,我会写这样的东西:width="([0-9]+)".

我该如何实现这一点?

1 个回复
SO网友:MikeNGarrett

我将通过修改wp_kses. wp_kses 是一个在内容上运行的函数,用于过滤掉不需要的标记和属性。它代表KSES剥离邪恶的脚本,但它所做的远不止这些。

这是一个很大的函数,有时很复杂,但如果您想扩展或修改它过滤掉的内容,它非常有用。

请记住,这仅适用于没有unfiltered_html 能力。

这个wp_kses_allowed_html 过滤器允许您修改允许的标记和属性。数组结构为$allowedtags[\'tag_name\'][\'attribute\'], 所以你会寻找$allowedtags[\'table\'][\'width\'], 例如

function my_modify_tags( $tags, $context ) {
    if ( \'post\' !== $context ) {
        return $tags;
    }
    if ( isset( $tags[\'table\'][\'width\'] ) ) {
        unset( $tags[\'table\'][\'width\'] );
    }
    if ( isset( $tags[\'td\'][\'width\'] ) ) {
        unset( $tags[\'td\'][\'width\'] );
    }
    if ( isset( $tags[\'th\'][\'width\'] ) ) {
        unset( $tags[\'th\'][\'width\'] );
    }
    return $tags;
}
add_filter( \'wp_kses_allowed_html\', \'my_modify_tags\', 1, 2 );
The$context 此处允许将此应用于要修改标记的特定实例。通过确定目标post, 您可以将此筛选后的允许标记列表仅应用于帖子内容。

相关推荐

Wp.Editor等的适当的、详尽的文档

存在以下情况:可湿性粉剂。编辑PanelColorSettings可湿性粉剂。编辑检查员控制wp。编辑RichText可湿性粉剂。编辑BlockControls等,其中是显示wp中可用“组件”完整列表的文档。编辑此外,wp的等效文件在哪里。元素和wp。组件?你的,沮丧地