it-swarm-vi.com

Văn bản của TinyMce với textareas trong phiên bản meta

Tôi đang cố gắng sử dụng plugin http://www.tinymce.com/ để thêm một bản tin vào văn bản của tôi trong các hộp meta mà tôi đã tạo. Tôi đã googled các cách khác và tôi không thể làm cho nó hoạt động hoặc không nắm bắt được khái niệm. SO đây là những gì tôi đang cố gắng bây giờ -

Tôi đã thử tạo plugin để thêm tập lệnh vào bảng điều khiển quản trị của mình -

add_action('admin_init', 'admin_load_scripts'); 
function admin_load_scripts() { 
    $js_file = plugins_url( '/tinymce/jquery.tinymce.min.js', __FILE__ );  
    wp_enqueue_script('jquery.tinymce.min', $js_file, array('jquery')); 
}

Sau đó, tôi cần phải gọi nó như vậy -

<script>
        tinymce.init({selector:'textarea'});
</script>

Nhưng tôi không chắc làm thế nào để làm điều này, vì đây là phần cuối và không phải phần đầu. Làm thế nào tôi có thể đạt được điều này?

ĐÃ CẬP NHẬT

Đây là mã của tôi cho các hộp meta. http://Pastebin.com/WcC51uA9

Tôi đã thử các phương pháp sau (dĩ nhiên là đặt nó vào hàm.php) và đối với hầu hết các phần chúng chỉ không hoạt động hoặc sẽ hiển thị trên đầu trang hoặc dưới cùng của trang. Họ đã không xuất hiện trên textarea cả. ---

http://Pastebin.com/Ct0mF6q7

http://Pastebin.com/R6t0ij6h

http://Pastebin.com/dcczcVby

http://Pastebin.com/yt1uRS5U

7
Rich

Đây là Pastebin bao gồm mã của bạn.

Nhận giá trị cũ của tinyMCE

$meta_biography = get_post_meta( $post->ID, 'meta_biography', true );

Gọi cho Biên tập viên TinyMCE

wp_editor( $meta_biography, 'biography', array(
    'wpautop'       => true,
    'media_buttons' => false,
    'textarea_name' => 'meta_biography',
    'textarea_rows' => 10,
    'teeny'         => true
) );

Lưu Giá trị Trình chỉnh sửa hoặc nếu không có gì - xóa các giá trị cũ.

if( isset( $_POST['meta_biography'] ) && $_POST['meta_biography'] != '' ) {
    update_post_meta( $post_id, 'meta_biography', $_POST['meta_biography'] );
} else {
    delete_post_meta( $post_id, 'meta_biography' );
}

Nếu bạn muốn thêm nhiều tùy chọn hơn vào trình chỉnh sửa - Bạn có thể xem Codex hoặc Xem Điều này Điều khoản WPTuts . Bạn muốn sử dụng tinymce và truyền cho nó một loạt các cài đặt. Bạn có thể phải xóa teeny => true trong wp_editor() vì Codex nói rằng nó sẽ chỉ sử dụng cấu hình trình chỉnh sửa tối thiểu.

14
Howdy_McGee
// for pages use 'edit_page_form' as the first parameter. And see my comment below.
add_action( 'edit_form_advanced', 'my_meta_editor' ); 

function my_meta_editor() {

    // set 'your_meta_key' to the actual key
    $content = get_post_meta($post->ID, 'your_meta_key', true);

    // only low case [a-z], no hyphens and underscores
    $editor = 'mymetaeditor';

    // See my comment below
    $editor_settings = array();

    wp_editor( $content, $editor, $editor_settings);

}

Tìm kiếm Hành động quản trị cho edit_form_after_title, edit_form_after_editor, edit_form_advanced nếu bạn muốn thay đổi vị trí của hộp meta.

Đồng thời xem wp_editor để biết cài đặt trình chỉnh sửa.

2
Max Yudin

Hàm này hoạt động hoàn hảo đối với tôi chỉ cần thêm vào tệp tin.php của bạn và làm cho các trường tùy chỉnh của bạn trở thành văn bản và bạn đã hoàn thành:

//add tinymce editor to custom fields
function admin_add_wysiwyg_custom_field_textarea()
{ ?>
<script type="text/javascript">/* <![CDATA[ */
    jQuery(function($){
        var i=1;
        $('textarea').each(function(e)
        {
          var id = $(this).attr('id');
          if (!id)
          {
           id = 'customEditor-' + i++;
           $(this).attr('id',id);
          }
          tinyMCE.execCommand("mceAddEditor", false, id);
          tinyMCE.execCommand('mceAddControl', false, id);
        });
    });
/* ]]> */</script>
<?php }
add_action( 'admin_print_footer_scripts', 'admin_add_wysiwyg_custom_field_textarea', 99 );

Lấy từ đây .

1
Salam El-Banna