将富文本编辑器添加到我的插件

时间:2013-04-21 作者:Ronny Rook

我正在尝试向我自己的插件添加一个富文本编辑器。所以我首先在google上搜索了一下,当然我在上面找到了几个答案dev4pressStack Overflow. 此代码不显示任何内容,所以我尝试了another solution. 这将显示一个富文本编辑器,如:

enter image description here

这似乎很好,但一旦切换到所见即所得选项卡,插入的文本就会被删除,我只看到一个空白字段,无法键入任何内容。

有人熟悉这个问题吗?这是一个bug还是我可以做些什么来让它工作?

这些脚本和样式包含在我的插件中:

function highlights_style() {
    wp_enqueue_style(\'thickbox\');
}

function highlights_script() {
    wp_register_script( \'jquery.js\', HIGHLIGHTS_PLUGIN_URL . \'jquery.js\', array(\'jquery\',\'media-upload\',\'thickbox\'));
    wp_enqueue_script( \'jquery.js\' );

    wp_enqueue_script(\'media-upload\');
    wp_enqueue_script(\'thickbox\');
    wp_enqueue_script( \'editor\' );

    wp_enqueue_media();

    add_action( \'admin_head\', \'wp_tiny_mce\' );
}
我用它来显示编辑器:

the_editor( \'\' , \'content\' );

4 个回复
SO网友:T.Todua

wp_editor() 输出文本区域(html代码),因此,可能不需要在函数中使用它。php,但在页面源代码中使用。(例如,在plugin.php中:

<div class="blabla>
  <form action="" method="POST">
  <?php wp_editor( \'Hi,its content\' , \'desired_id_of_textarea\', $settings = array(\'textarea_name\'=>\'your_desired_name_for_$POST\') ); ?> 
  <input type="submit">
  </form>
</div>
注意:它可能不适用于add_option 作用

SO网友:i-4Web

我建议您使用内置的wp\\u editor()函数。谷歌“wp\\U编辑器wordpress codex”并查看本教程Using the WP Editor Function

SO网友:josh

您有不必要的脚本加载。

您可以看到编辑器。。但它并没有加载它的javascript。您可以分辨,因为没有按钮。这很可能是因为您有javascript错误。

我会删除您已排队的不必要脚本。

然后,检查浏览器控制台以查看生成了哪些错误或通知。

SO网友:DrMosko

要正确使用wp\\U编辑器,请如下使用:

// add the admin settings and such
add_action(\'admin_init\', \'wp_your_plugin_admin_init\');
function wp_your_plugin_admin_init(){
register_setting( \'wp_your_plugin_settings\', \'wp_your_plugin_settings\', \'wp_your_plugin_settings_validate\');
add_settings_field(\'wp_your_plugin_user_custom_text\', __(\'Enter your message\',\'wp_your_plugin\'), \'wp_your_plugin_user_custom_text\', \'wp_your_plugin\', \'wp_your_plugin_main\');

function wp_your_plugin_user_custom_text() {
$options = get_option(\'wp_your_plugin_settings\');
$settings  = array(\'media_buttons\' => true,\'textarea_rows\' => 5,\'textarea_name\' => \'user_custom_text\');
wp_editor( $options[\'user_custom_text\'],\'user_custom_text\', $settings  );}  

// validate  
function wp_your_plugin_settings_validate() {
$options = get_option(\'wp_your_plugin_settings\');


if ( empty($_POST[\'user_custom_text\']) ){
    $options[\'user_custom_text\'] =  __(\'Enter your own content, it will be below the original message\',\'wp_your_plugin\');// as set when the plugin activated
}else{
    $options[\'user_custom_text\'] =  wp_kses_post($_POST[\'user_custom_text\']) ;}// u need to Sanitize to be able to get the media to work

结束