web-dev-qa-db-ja.com

カスタム投稿タイプのメタボックスでのTinyMceとテキストエリアの併用

私が作成した私のメタボックスの私のテキストエリアにちょっとした追加をするために http://www.tinymce.com/ /プラグインを使おうとしています。私は他の方法でグーグルしました、そして私はそれを機能させることができないか、概念をつかまえませんでした。 SOこれがImが今試していることです -

私の管理ダッシュボードにスクリプトを追加するためのプラグインを作成してみました -

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にそれを置く)次の方法を試してみました、そしてほとんどの部分のために彼らは単に働かなかったか、あるいはページのトップかページの底に現れるでしょう。彼らはtextareaにまったく現れなかった。 ---

http://Pastebin.com/Ct0mF6q7

http://Pastebin.com/R6t0ij6h

http://Pastebin.com/dcczcVby

http://Pastebin.com/yt1uRS5U

7
Rich

ここに ペーストビン があります。

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

あなたがエディタにもっとオプションを追加したいなら - あなたは コーデックス を見ることができます/またはこのNice WPTuts Article をチェックしてください。あなたはtinymceを使い、それに設定の配列を渡したいのです。 Codexは最小限のエディタ設定しか使わないと言っているので、wp_editor()teeny => trueを削除しなければならないかもしれません。

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_titleedit_form_after_editoredit_form_advancedを検索します。

エディタの設定については wp_editor も参照してください。

2
Max Yudin

この関数は私のために完璧に働いたあなたのfunctions.phpファイルに追加してあなたのカスタムフィールドをtextareaにするだけで完了です:

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