如何让WordPress编辑器不接受HTML语言?

时间:2013-11-04 作者:Fizzix

因此,基本上,我在我的网站上使用Wordpress编辑器,我不希望我的用户在其中发布任何HTML,因为这可能会导致一些问题。

我的Wordpress编辑器当前是这样的:

<?php wp_editor( get_the_content() , \'post_content\'); ?>
简单地说,我希望它看起来像一个简单的HTMLtextarea, 并去掉所有HTML标记(如PHP函数strip_tags 做尽管如此,我无法使用简单的textarea... 不知道为什么,只是我的主题有一个编码问题。

是的,这样的事情可能吗?

1 个回复
SO网友:s_ha_dum

删除对编辑器的帖子类型支持:

add_action(
  \'init\',
  function() {
    remove_post_type_support( \'post\', \'editor\');
  }
);
现在添加一个只包含textarea

// print a new meta box
function generic_cb($post) {
  $content = (!empty($post->post_content)) ? $post->post_content : \'\';
  echo \'<textarea name="content">\'.$content.\'</textarea>\';
}

function add_before_editor($post) {
  global $post;
  add_meta_box(
    \'generic_box\', // id, used as the html id att
    __( \'Text Only Content\' ), // meta box title
    \'generic_cb\', // callback function, spits out the content
    \'post\', // post type or page. This adds to posts only
    \'pre_editor\', // context, where on the screen
    \'high\' // priority, where should this go in the context
  );
  do_meta_boxes(\'post\', \'pre_editor\', $post);
}
add_action(\'edit_form_after_title\',\'add_before_editor\');
并保存

// strip your data on save
function strip_post_content_markup($data) {
  if (!empty($data[\'post_content\'])) {
    $data[\'post_content\'] = strip_tags($data[\'post_content\']);
  }
  return $data;
}
add_filter(\'wp_insert_post_data\',\'strip_post_content_markup\',1);
这是我能想到的最干净的解决方案。

结束