2012-01-11 13 views
6

Dobrze słyszeć, że Sony (wordpress3.3) ma nowy edytor api wp_editor(), który daje nam możliwość korzystania z wielu instancji edytora w naszych niestandardowych polach z łatwością.Jak dostosować domyślny edytor Wordpress?

Ale musiałem dostosować domyślny edytor (dla głównej zawartości) i nie mogłem wymyślić, jak to zrobić za pomocą tej funkcji. Potrzebowałem dostosować edytor dla mojego nowego niestandardowego typu wpisu o nazwie baner, dla którego potrzebowałem zmienić rozmiar edytora przy użyciu mniejszej liczby przycisków. Wiem, że mógłbym to zrobić, po prostu używając niestandardowego pola zamiast, ale z jakiegoś powodu chcę użyć treści do opisu banera.

Dziękuję z góry.

Odpowiedz

9

Szukałem rozwiązania, aby umieścić niestandardowy metabox powyżej domyślnego edytora i znalazłem rozwiązanie mojego starego pytania (jak dostosować domyślny edytor za pomocą wp_editor)!

Rozwiązaniem było najpierw anulowanie domyślnego edytora. Następnie stwórz kolejny metabox, aby umieścić zawartość, a następnie użyj wp_editor, aby utworzyć nową instancję, co nie jest proste?

add_action('add_meta_boxes', 'page_meta_boxes'); 
public function page_meta_boxes() 
{ 

    global $_wp_post_type_features; 
      //ive defined my other metaboxes first with higher priority 
    add_meta_box(
     $id  = 'page_heading_meta_box', 
     $title = __('Heading'), 
     $callback = array(&$this,'render_page_heading_metabox'), 
     $post_type = 'page', 
     $context = 'normal', 
     $priority = 'core' 
     ); 
    add_meta_box(
     $id  = 'page_description_meta_box', 
     $title = __('Description'), 
     $callback = array(&$this,'render_page_description_metabox'), 
     $post_type = 'page', 
     $context = 'normal', 
     $priority = 'core' 
     ); 
    //check for the required post type page or post or <custom post type(here article) 
    if (isset($_wp_post_type_features['article']['editor']) && $_wp_post_type_features['post']['editor']) { 
     unset($_wp_post_type_features['article']['editor']); 
     add_meta_box(
      'wsp_content', 
      __('Content'), 
      array(&$this,'content_editor_meta_box'), 
      'article', 'normal', 'core' 
     ); 
    } 
    if (isset($_wp_post_type_features['page']['editor']) && $_wp_post_type_features['page']['editor']) { 
     unset($_wp_post_type_features['page']['editor']); 
     add_meta_box(
      'wsp_content', 
      __('Content'), 
      array(&$this,'content_editor_meta_box'), 
      'page', 'normal', 'low' 
     ); 
    } 
    } 

W ten sposób zarejestrowaliśmy nowy metaboks zwany treścią. Teraz czas na umieszczenie edytora

 function content_editor_meta_box($post) 
    { 
     $settings = array(
      #media_buttons 
      #(boolean) (optional) Whether to display media insert/upload buttons 
      #Default: true 
      'media_buttons' => true, 

      #textarea_name 
      #(string) (optional) The name assigned to the generated textarea and passed parameter when the form is submitted. (may include [] to pass data as array) 
      #Default: $editor_id 
      'textarea_name'=>'content', 

      #textarea_rows 
      #(integer) (optional) The number of rows to display for the textarea 
      #Default: get_option('default_post_edit_rows', 10) 

      #tabindex 
      #(integer) (optional) The tabindex value used for the form field 
      #Default: None 
      'tabindex' => '4' 

      #editor_css 
      #(string) (optional) Additional CSS styling applied for both visual and HTML editors buttons, needs to #include <style> tags, can use "scoped" 
      #Default: None 

      #editor_class 
      #(string) (optional) Any extra CSS Classes to append to the Editor textarea 
      #Default: 

      #teeny 
      #(boolean) (optional) Whether to output the minimal editor configuration used in PressThis 
      #Default: false 

      #dfw 
      #(boolean) (optional) Whether to replace the default fullscreen editor with DFW (needs specific DOM elements #and css) 
      #Default: false 

      #tinymce 
      #(array) (optional) Load TinyMCE, can be used to pass settings directly to TinyMCE using an array() 
      #Default: true 

      #quicktags 
      #(array) (optional) Load Quicktags, can be used to pass settings directly to Quicktags using an array() 
      #Default: true 
     ); 
     wp_editor($post->post_content,'content'); 

    } 

Teraz możesz w pełni dostosować swój edytor! Tak to wygląda teraz. Mam nadzieję, że jest to również przydatne dla Ciebie! enter image description here

+1

Należy oznaczyć tę odpowiedź jako prawidłową. – brasofilo

0

Można spróbować to Editor którego można dodać dodatkowe pola również jest prosty w obsłudze i instalacji

+0

To było trochę ciężkie, z dodatkowymi stolikami, nie podobało mi się to, w każdym razie dzięki za sugestię. –

1

Można dostosować edytor (TinyMCE) z filtrem, jak pokazano here. Fragment kodu załączeniu:

function myformatTinyMCE($in) 
{ 
$in['plugins']='inlinepopups,tabfocus,paste,media,fullscreen,wordpress,wpeditimage,wpgallery,wplink,wpdialogs,wpfullscreen'; 
$in['wpautop']=true; 
$in['apply_source_formatting']=false; 
$in['theme_advanced_buttons1']='formatselect,forecolor,|,bold,italic,underline,|,bullist,numlist,blockquote,|,justifyleft,justifycenter,justifyright,justifyfull,|,link,unlink,|,wp_fullscreen,wp_adv'; 
$in['theme_advanced_buttons2']='pastetext,pasteword,removeformat,|,charmap,|,outdent,indent,|,undo,redo'; 
$in['theme_advanced_buttons3']=''; 
$in['theme_advanced_buttons4']=''; 
return $in; 
} 
add_filter('tiny_mce_before_init', 'myformatTinyMCE'); 

Ten kod należy umieścić w swojej motywu functions.php pliku. Możesz chcieć uzyskać print_r($in), aby zobaczyć wszystkie klucze, które zostały przekazane (niektóre z nich zostały tutaj pominięte, ponieważ nie wierzę, że strona, do której linkowałem powyżej jest aktualna). Możesz przeglądać najnowsze źródło here. Filtry, których szukasz, znajdziesz w funkcji public static function editor_settings($editor_id, $set)

Możesz również chcieć upewnić się, że dzieje się tak tylko w przypadku Twojego baner post_type, ponieważ wpłynie to na wszystkie instancje edytora, które zostały utworzone.

+0

Próbowałem tego, ale nie znalazłem żadnych opcji, takich jak zmiana rozmiaru edytora (np. Textarea_rows), dzięki czemu jest to malusieńka itd. –

+0

W swoim początkowym pytaniu podłączyłeś się do referencji wp_editor - możesz modyfikować te opcje poprzez ' Parametr $ settings' z kluczami 'textarea_rows' i' maleny' – chrisn