使用wp_EDITOR发布自定义metabox文本区域

时间:2012-04-23 作者:Travis Pflanz

我是一个新手,希望将wp\\U编辑器添加到自定义的metabox textarea字段中。我似乎到处都在寻找使用wp\\U编辑器编写带有文本区域的元盒的完整示例。我正在寻找一个完整的从头到尾的例子。

我不想使用插件。

有人有完整示例的链接吗?

谢谢

2 个回复
最合适的回答,由SO网友:Dave Romsey 整理而成

在元框中使用wp\\U编辑器至少有一个问题,如中所述ticket #19173(关于wp_编辑器和元框主题的良好阅读)。如果您移动包含TinyMCE的元框(特别是,如果TinyMCE在DOM中的位置发生更改),TinyMCE就会变得一团糟。但是,您可以使用Quicktags版本(非tinyMCE)。另一种选择是不移动框(lame)或使用edit_page_formedit_form_advanced 挂钩,而不是使用add_meta_box().

我编写了一个快速插件来演示这个问题。这是一个在元框中使用wp\\u编辑器的完整工作示例。通过禁用TinyMCE并使用appropriate args.

<?php
/**
 * Plugin Name: WP Editor in a Meta Box
 * Plugin URI: 
 * Description: Demonstration of WP Editor in a meta box.
 * Version: 1.0
 * Author: goto10
 * Author URI: 
 * License: 
 */

// file name: wp_editor-in-meta-box-test.php 

/* Meta box code based on http://codex.wordpress.org/Function_Reference/add_meta_box */

/* Define the custom box */
add_action( \'add_meta_boxes\', \'myplugin_add_custom_box\' );

/* Do something with the data entered */
add_action( \'save_post\', \'myplugin_save_postdata\' );

/* Adds a box to the main column on the Post and Page edit screens */
function myplugin_add_custom_box() {
  add_meta_box( \'wp_editor_test_1_box\', \'WP Editor Test #1 Box\', \'wp_editor_meta_box\' );
}

/* Prints the box content */
function wp_editor_meta_box( $post ) {

  // Use nonce for verification
  wp_nonce_field( plugin_basename( __FILE__ ), \'myplugin_noncename\' );

  $field_value = get_post_meta( $post->ID, \'_wp_editor_test_1\', false );
  wp_editor( $field_value[0], \'_wp_editor_test_1\' );
}

/* When the post is saved, saves our custom data */
function myplugin_save_postdata( $post_id ) {

  // verify if this is an auto save routine. 
  // If it is our form has not been submitted, so we dont want to do anything
  if ( defined( \'DOING_AUTOSAVE\' ) && DOING_AUTOSAVE ) 
      return;

  // verify this came from the our screen and with proper authorization,
  // because save_post can be triggered at other times
  if ( ( isset ( $_POST[\'myplugin_noncename\'] ) ) && ( ! wp_verify_nonce( $_POST[\'myplugin_noncename\'], plugin_basename( __FILE__ ) ) ) )
      return;

  // Check permissions
  if ( ( isset ( $_POST[\'post_type\'] ) ) && ( \'page\' == $_POST[\'post_type\'] )  ) {
    if ( ! current_user_can( \'edit_page\', $post_id ) ) {
      return;
    }    
  }
  else {
    if ( ! current_user_can( \'edit_post\', $post_id ) ) {
      return;
    }
  }

  // OK, we\'re authenticated: we need to find and save the data
  if ( isset ( $_POST[\'_wp_editor_test_1\'] ) ) {
    update_post_meta( $post_id, \'_wp_editor_test_1\', $_POST[\'_wp_editor_test_1\'] );
  }

}
编辑:上述示例中的此版本的wp\\u editor\\u meta\\u box()函数将禁用TMCE,并启用Quicktags:

/* Prints the box content */
function wp_editor_meta_box( $post ) {

  // Use nonce for verification
  wp_nonce_field( plugin_basename( __FILE__ ), \'myplugin_noncename\' );

  $field_value = get_post_meta( $post->ID, \'_wp_editor_test_1\', false );

  // Settings that we\'ll pass to wp_editor
  $args = array (
        \'tinymce\' => false,
        \'quicktags\' => true,
  );
  wp_editor( $field_value[0], \'_wp_editor_test_1\', $args );
}

SO网友:JohnG

您是在寻找一个从头开始的代码示例,还是会考虑在metabox中集成一个支持WYSIWYG编辑器的自定义metabox插件?如果是后者,我可以建议https://github.com/jaredatch/Custom-Metaboxes-and-Fields-for-WordPress

结束

相关推荐

metabox upload file

我有一个带有上传文件功能的自定义元文件,但问题是,当点击下面的jQuery代码“插入到帖子”时,我无法获得fileurl按钮的值 window.send_to_editor = function(html) { dlink = jQuery(\'button.urlfile\',html).attr(\'title\'); jQuery(\'#download_link\').val(dlink);