如何在开机自检中禁用样式过滤?

时间:2014-01-28 作者:Matthieu

我需要把HTML代码直接张贴。它可以工作,除了一些css属性:

每当“编辑器”或“管理员”用户尝试在样式属性中键入这些属性时,背景图像位置:

<div style="position:absolute">
将删除整个样式属性。

它对超级管理员很有效。

我试着把这个放在我的功能中。php:

remove_filter(\'content_save_pre\', \'wp_filter_post_kses\');
remove_filter(\'content_filtered_save_pre\', \'wp_filter_post_kses\');
但它不起作用。

我试图编辑角色,但“unfiltered\\u html”功能似乎不受欢迎,而且默认情况下,管理员和编辑器都要检查。

我知道这个过滤器是为了安全。但我的网站只能被一个用户访问,所以我不能假设他不会试图入侵自己的网站。

非常感谢你

编辑:

我找到一页解释问题,但没有解决方案:http://shinephp.com/is-unfiltered_html-capability-deprecated/

1 个回复
SO网友:Tom J Nowell

嵌入具有内联样式属性的div容器不是实现这一点的方法。WordPress剥离某些属性的问题是真正问题的副作用,而不是问题本身。

您不应该内联设置样式,这不是1997年,而是使用CSS类。您不应该在帖子中放置自定义标记。如果您确实需要大量自定义标记来更改帖子/页面的布局或样式,您应该应用以下之一:

使用自定义页面模板实现一个短代码来包装内容,例如:

[bluebox]This text is in a fancy blue box[/bluebox]

在非管理员上禁用html过滤并不能解决您的问题,它会带来新的安全问题,并使您的内容很难为最终用户(以及您自己,当您几个月后回来忘记事情时)编辑。

最后,所见即所得编辑器生成标记并不意味着它必须与之匹配。如果有一种更合理的方式来实现样式和html,请重写它。自动生成的代码不是编写网页的最佳方式,如果你的所见即所得编辑器给你内联风格的属性,那么我不会相信它。

结束

相关推荐

WordPress和MultiSite,正确的选择?

我即将为一个非营利组织创建一个网站,我需要它成为一个多站点平台。我不知道Worpress,但我知道有一个多站点选项。因此我想知道Wordpress是否是正确的解决方案。。。因此,我需要支持以下内容:[1 platform, 1 community]<单一用户群和SSO(每个站点1次登录)[several sites, several looks]<每个网站都需要有自己的风格(颜色、字体、图像……基本上只有css imo)[an accurate permission system]<每个