首页 文章

如何在Wordpress元框中添加wysiwyg编辑器

提问于
浏览
18

我正在为自定义帖子类型创建一个元框 . 有多个字段我想使用wysiwyg编辑器而不是 <textarea> . 可以在元框中添加多个编辑器吗?

我将衷心感谢您的帮助!

非常感谢 . 大傻

8 回答

  • 0

    这是完整的代码示例:

    add_action( 'add_meta_boxes',  function() { 
        add_meta_box('html_myid_61_section', 'TITLEEEEE', 'my_output_function');
    });
    
    function my_output_function( $post ) {
        $text= get_post_meta($post, 'SMTH_METANAME' , true );
        wp_editor( htmlspecialchars_decode($text), 'mettaabox_ID', $settings = array('textarea_name'=>'MyInputNAME') );
    }
    
    add_action( 'save_post', function($post_id) {
        if (!empty($_POST['MyInputNAME'])) {
            $datta=htmlspecialchars($_POST['MyInputNAME']); //make sanitization more strict !!
            update_post_meta($post_id, 'SMTH_METANAME', $datta );
        }
    });
    

    P.S.必须 - 根据我的经验推荐:

    忘记添加自定义代码,使用 Advanced Custom Fields ,它非常好并简化您的生活 .

  • 26

    到目前为止,http://codex.wordpress.org/Function_Reference/wp_editor是我发现的最简单的方法,自3.3版以来内置于Wordpress中(因此升级;-))

  • 1

    但是您需要使用nl2br()函数替换演示文稿,因为自定义模板中的textarea具有toogle JS问题,这会删除所有 <P>
    标记,从而删除所有换行符 .

  • 31

    您可以使用metabox中的wordpress默认文本编辑器

    add_action( 'edit_page_form', 'my_second_editor' );
    function my_second_editor() {
        // get and set $content somehow...
        wp_editor( $content, 'mysecondeditor' );
    }
    
  • 3
    // for custom post type
    
    function wo_second_editor($post) {
    
      echo "<h3>Write here your text for the blue box on the right:</h3>";
      $content = get_post_meta($post->ID, 'wo_blue_box' , true ) ;
      wp_editor( htmlspecialchars_decode($content), 'wo_blue_box', array("media_buttons" => false) );
    }
    
    add_action('edit_form_advanced', 'wo_second_editor');
    
    
    function wo_save_postdata($post_id, $post, $update) {
    
      //...
    
      if (!empty($_POST['wo_blue_box'])) {
        $data=htmlspecialchars($_POST['wo_blue_box']);
        update_post_meta($post_id, 'wo_blue_box', $data );
      }
    }
    
    add_action('save_post', 'wo_save_postdata');
    
    
    // Theme:
    
    <div class="blue">
      <?php
      $content = get_post_meta(get_the_ID(), 'wo_blue_box' , true );
        $content = htmlspecialchars_decode($content);
        $content = wpautop( $content );
        echo $content;
      ?>
    </div>
    
  • 1
  • 0

    首先安装TinyMCE Advanced插件 . 其次,将“theEditor”类添加到您的textarea中

    <textarea  class="theEditor" name="custom_meta_box"></textarea>
    

    而已 ;)

    纳比勒

  • 0

    这对我有用:

    http://www.farinspace.com/multiple-wordpress-wysiwyg-visual-editors/

    它基本上用id创建你的textarea,然后从js调用:

    tinyMCE.execCommand('mceAddControl', false, 'your_textarea_id');
    

    希望能帮助到你!

相关问题