所以基本上,我在我的网站上使用Wordpress编辑器,我不希望我的用户在其中发布任何HTML,因为它可能会导致一些问题。
我的Wordpress编辑器目前是这样的:
<?php wp_editor( get_the_content() , 'post_content'); ?>
简单来说,我基本上希望它看起来像一个简单的HTML textarea
,并删除所有HTML标记(就像PHP函数strip_tags
所做的那样。虽然,我无法得到这个PHP使用简单的textarea的功能...不确定为什么,只是我的主题的编码问题。
是的,这样的事情可能吗?
答案 0 :(得分:1)
由于get_the_content()
会返回输入内容的字符串,因此它只是您未经过滤的用户输入,例如:"This is an <em>unfiltered</em> string with <strong>potential HTML included!</strong>"
如果您正在初始化编辑器,是否可以在初始化期间简单地在所述输入上调用strip_tags
?
<?php wp_editor( strip_tags(get_the_content()), 'post_content'); ?>
最终文本将与strip_tags
"This is an unfiltered string with potential HTML included!"
一样:{{1}}
答案 1 :(得分:1)
我认为您可以使用array_map
来删除您在数据库中保存的所有数组元素的标记。
$save_to_db = array_map('strip_tags', $save_to_db);
答案 2 :(得分:0)
最简单的方法是挂钩在更新数据库中的帖子之前运行的过滤器。然后,您可以剥离标签或与帖子的内容和其他属性进行任何其他交互。
以下是在保存帖子之前删除所有标签的示例代码:
function my_remove_content_html( $data ){
$data['post_content'] = strip_tags( $data['post_content'] );
return $data;
}
您可以为管理员启用HTML代码,例如:
function my_remove_content_html( $data ){
if ( ! is_super_admin() ) {
$data['post_content'] = strip_tags( $data['post_content'] );
}
return $data;
}
您还可以将标签的剥离限制为特定的帖子类型,如下所示:
function my_remove_content_html( $data ){
if ( 'post' == $data['post_type'] ) {
$data['post_content'] = strip_tags( $data['post_content'] );
}
return $data;
}