it-swarm.com.de

Verwenden von TinyMce mit Textfeldern in Metafeldern für benutzerdefinierte Beitragstypen

Ich versuche das http://www.tinymce.com/ Plugin zu verwenden, um meinen Textbereichen in meinen von mir erstellten Meta-Feldern einen Tinymce hinzuzufügen. Ich habe auf andere Weise gegoogelt und entweder kann ich es nicht zum Laufen bringen oder habe das Konzept nicht verstanden. SO das versuche ich jetzt -

Ich habe versucht, ein Plugin zu erstellen, um das Skript zu meinem Admin-Dashboard hinzuzufügen.

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

Dann muss ich es so nennen -

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

Aber ich bin mir nicht sicher, wie ich das machen soll, da dies für das Backend und nicht für das Frontend ist. Wie kann ich das erreichen?

AKTUALISIERT

Dies ist mein Code für die Meta-Boxen. http://Pastebin.com/WcC51uA9

Ich habe die folgenden Methoden ausprobiert (Platzierung in functions.php natürlich) und meistens funktionierten sie entweder nicht oder wurden oben auf der Seite oder unten auf der Seite angezeigt. Sie sind überhaupt nicht im Textbereich aufgetaucht. ---

http://Pastebin.com/Ct0mF6q7

http://Pastebin.com/R6t0ij6h

http://Pastebin.com/dcczcVby

http://Pastebin.com/yt1uRS5U

7
Rich

Hier ist ein Pastebin mit Ihrem Code.

Holen Sie sich den alten Wert des tinyMCE

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

Rufen Sie den TinyMCE-Editor auf

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

Speichern Sie den Editor-Wert oder löschen Sie alte Werte, wenn nichts vorhanden ist.

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

Wenn Sie dem Editor weitere Optionen hinzufügen möchten - Sie können den Codex anzeigen oder diesen Nizza WPTuts-Artikel lesen. Sie möchten die tinymce verwenden und ihr eine Reihe von Einstellungen übergeben. Möglicherweise müssen Sie den teeny => true in der wp_editor() entfernen, da der Codex angibt, dass nur eine minimale Editor-Konfiguration verwendet wird.

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

}

Suchen Sie nach Administrative Actions für edit_form_after_title, edit_form_after_editor, edit_form_advanced, wenn Sie den Speicherort der Meta-Box ändern möchten.

Siehe auch wp_editor für Editoreinstellungen.

2
Max Yudin

Diese Funktion funktionierte perfekt für mich, füge sie einfach zu deiner functions.php-Datei hinzu und mache deine benutzerdefinierten Textfelder und fertig:

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

von hier genommen .

1
Salam El-Banna