6 Stimmen

Wie kann man den Standard-Wordpress-Editor anpassen?

Gut zu hören, dass Sony (wordpress3.3) den neuen Editor api hat wp_editor() die uns die Möglichkeit gibt, mehrere Instanzen des Editors in unseren benutzerdefinierten Feldern zu verwenden.

Aber ich musste den Standard-Editor (für den Hauptinhalt) anpassen und konnte nicht herausfinden, wie man das mit dieser Funktion macht. Ich musste den Editor für meinen neuen benutzerdefinierten Beitragstyp namens baner für die ich die Größe des Editors mit weniger Schaltflächen ändern musste. Ich weiß, ich könnte es tun, indem Sie einfach ein benutzerdefiniertes Feld statt, aber aus irgendeinem Grund möchte ich den Inhalt für die Beschreibung des Banners verwenden.

Ich danke Ihnen im Voraus.

9voto

Dipesh KC Punkte 3055

Ich war auf der Suche nach einer Lösung, um benutzerdefinierte Metabox über den Standard-Editor zu platzieren und ich habe die Lösung für meine alte Frage gefunden (wie man den Standard-Editor mit dem wp_editor anpassen)!

Die Lösung bestand darin, zunächst den Standardeditor zu deaktivieren. Dann erstellen Sie eine andere Metabox, um den Inhalt zu platzieren und verwenden Sie dann wp_editor, um seine neue Instanz zu erstellen, einfach ist es nicht?

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

Auf diese Weise haben wir eine neue Metabox namens content registriert. Nun ist es an der Zeit, den Editor zu platzieren

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

    }

Jetzt können Sie Ihren Editor vollständig anpassen! So sieht er jetzt aus. Ich hoffe, es ist auch für Sie nützlich! enter image description here

1voto

chrisn Punkte 2065

Sie können den Editor (TinyMCE) mit einem Filter anpassen, wie gezeigt aquí . Code-Schnipsel beigefügt:

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

Dieser Code sollte in der Theme-Datei functions.php Datei. Sie möchten vielleicht print_r( $in ) um alle übergebenen Schlüssel zu sehen (ich habe hier einige ausgelassen, weil ich nicht glaube, dass die Seite, auf die ich oben verlinkt habe, aktuell ist). Sie können die neueste Quelle durchsuchen aquí . Die gesuchten Filter finden Sie in der Funktion public static function editor_settings($editor_id, $set)

Sie können auch sicherstellen, dass dies nur für Ihre baner post_type, da dies alle Instanzen des Editors betrifft, die erstellt werden.

0voto

Bharath Styen Punkte 20

Das können Sie versuchen Herausgeber die Sie zusätzliche Felder hinzufügen können und die einfach zu benutzen und zu installieren ist

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X