2010-08-16 2 views
16

Ich erstelle eine Meta-Box für meine benutzerdefinierte Beitragstyp. Es gibt mehrere Felder, in denen ich den WYSIWYG-Editor anstelle von <textarea> verwenden möchte. Ist es möglich, mehrere Editoren zu einer Metabox hinzuzufügen?Wie wysiwyg Editor in Wordpress-Meta-Feld hinzufügen

Ich würde wirklich Ihre Hilfe schätzen!

Vielen Dank. Dasha

Antwort

0

Erste TinyMCE erweiterte Plugin installieren. Zweite add "theEditor" Klasse Ihren TextArea- ähnliche

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

Das ist es ;)

Nabeel

25

http://codex.wordpress.org/Function_Reference/wp_editor war mit Abstand die einfachste Methode, fand ich, da 3.3 in Wordpress gebaut (so upgrade ;-))

+0

Vergessen Sie nicht, das ID-Argument auf etwas anderes als die leere Zeichenfolge zu setzen oder es wird nicht funktionieren ... –

3

Aber Sie müssen Präsentation mit nl2br() -Funktion ersetzen als Textarea in benutzerdefinierten Vorlagen haben die Toogle JS-Problem, das entfernt alle Ihre <P> a nd <br/> Tags und damit alle Zeilenumbrüche.

1

können Sie den Text-Editor Wordpress verwenden standardmäßig in der Metabox

add_action('edit_page_form', 'my_second_editor'); 
function my_second_editor() { 
    // get and set $content somehow... 
    wp_editor($content, 'mysecondeditor'); 
} 
27

ist voll Codebeispiel:

add_action('add_meta_boxes', function() { 
    add_meta_box('html_myid_61_section', 'TITLEEEEE', 'my_output_function'); 
}); 

function my_output_function($post) { 
    wp_editor(htmlspecialchars_decode(get_post_meta($post, 'SMTH_METANAME' , true)), 'mettaabox_ID', $settings = array('textarea_name'=>'MyInputNAME')); 
} 

add_action('save_post', function($post_id) { 
    if (!empty($_POST['MyInputNAME'])) { 
     $datta=htmlspecialchars($_POST['MyInputNAME']); 
     update_post_meta($post_id, 'SMTH_METANAME', $datta); 
    } 
}); 

P. S. MUSS-Empfehlung aus meiner Erfahrung:

Vergessen Sie das Hinzufügen von benutzerdefinierten Codes, verwenden Sie Advanced Custom Fields, es ist hervorragend und vereinfachen Sie Ihr Leben.

+0

Aber für Advanced Custom Felder müssen Sie wie $ 30,00 für ein Repeater-Feld bezahlen. Ich würde lieber mein eigenes machen. – Matthew

+0

@Matthew Sie lieber Ihre eigenen als die Zahlung von $ 30,00? Wie lange, glaubst du, wird es dauern, das umzusetzen? –

+1

@DannyCoulombe Es dauerte nicht zu lange. Es war auch eine tolle Lernerfahrung! Wenn Sie neugierig sind, können Sie es [hier] (https://github.com/MatthewKosloski/wp-metabox-constructor-class) – Matthew

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