it-swarm.com.ru

Использование TinyMce с текстовыми областями в мета-боксах для пользовательских типов записей

Я пытаюсь использовать плагин http://www.tinymce.com/ для добавления оттенка в мои текстовые области в моих мета-окнах, которые я создал. Я гуглил другие способы и либо не могу заставить его работать, либо не понял концепцию. SO это то, что я сейчас пытаюсь -

Я попытался создать плагин, чтобы добавить скрипт на панель администратора -

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')); 
}

Тогда мне нужно назвать это так -

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

Но я не уверен, как это сделать, потому что это для бэкэнда, а не для внешнего интерфейса. Как мне этого добиться?

ОБНОВЛЕНО

Это мой код для мета-блоков. http://Pastebin.com/WcC51uA9

Я попробовал следующие методы (конечно, поместив их в functions.php), и по большей части они либо просто не работали, либо отображались в верхней части страницы или в нижней части страницы. Они вообще не появлялись в текстовой области. ---

http://Pastebin.com/Ct0mF6q7

http://Pastebin.com/R6t0ij6h

http://Pastebin.com/dcczcVby

http://Pastebin.com/yt1uRS5U

7
Rich

Вот Pastebin с вашим кодом.

Получить старое значение tinyMCE

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

Позвоните в редактор TinyMCE

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

Сохраните значение редактора или, если ничего нет, удалите старые значения.

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' );
}

Если вы хотите добавить больше опций в редактор - Вы можете просмотреть Кодекс или проверить эту Ниццу WPTuts Article . Вы хотите использовать tinymce и передать ему массив настроек. Возможно, вам придется удалить teeny => true в wp_editor(), поскольку Кодекс говорит, что он будет использовать только минимальную конфигурацию редактора.

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);

}

Поиск Административные действия для edit_form_after_title, edit_form_after_editor, edit_form_advanced, если вы хотите изменить расположение мета-поля.

Также смотрите wp_editor для настроек редактора.

2
Max Yudin

Эта функция отлично сработала для меня, просто добавьте в ваш файл functions.php и сделайте ваши настраиваемые поля текстовыми, и все готово:

//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 );

Взятый отсюда .

1
Salam El-Banna