visuellen wysiwyg (was Sie sehen, was Sie erhalten) erstellen und verwalten).
Es wird auch mit einemtext Ansicht geliefert, mit der Benutzer HTML in ihren Inhalt einfügen oder ändern können.
Der WordPress Visual Editor wird von der Tinymce -Editor -Steuerung angetrieben, die die WYSIWYG -Ansicht sowie die Formatierungsschaltflächen bietet:
Erstellen des Tinymce -Plugins
wir speichern hier die Dateien unseres Plugins. Erstellen Sie also als nächstes eine Datei namens Tinymce-Custom-classe.php mit dem folgenden Code:
<span>/** </span><span> * Plugin Name: TinyMCE Custom Class </span><span> * Plugin URI: https://www.sitepoint.com </span><span> * Version: 1.0 </span><span> * Author: Tim Carr </span><span> * Author URI: http://www.n7studios.co.uk </span><span> * Description: TinyMCE Plugin to wrap selected text in a custom CSS class, within the Visual Editor </span><span> * License: GPL2 </span><span> */ </span> <span>class TinyMCE_Custom_Class { </span> <span>/** </span><span> * Constructor. Called when the plugin is initialised. </span><span> */ </span> <span>function __construct() { </span> <span>} </span> <span>} </span> <span>$tinymce_custom_class = new TinyMCE_Custom_Class;</span>
WordPress Tinymce Filter
<span>/** </span><span> * Plugin Name: TinyMCE Custom Class </span><span> * Plugin URI: https://www.sitepoint.com </span><span> * Version: 1.0 </span><span> * Author: Tim Carr </span><span> * Author URI: http://www.n7studios.co.uk </span><span> * Description: TinyMCE Plugin to wrap selected text in a custom CSS class, within the Visual Editor </span><span> * License: GPL2 </span><span> */ </span> <span>class TinyMCE_Custom_Class { </span> <span>/** </span><span> * Constructor. Called when the plugin is initialised. </span><span> */ </span> <span>function __construct() { </span> <span>} </span> <span>} </span> <span>$tinymce_custom_class = new TinyMCE_Custom_Class;</span>
Nächst
<span>if ( is_admin() ) { </span> <span>add_action( 'init', array( &$this, 'setup_tinymce_plugin' ) ); </span><span>}</span>
Wir überprüfen dann, ob der Benutzer den visuellen Editor verwendet, da einige WordPress -Benutzer dies über
Benutzer> Ihr Profil ausschalten. Wenn der Benutzer den visuellen Editor nicht verwendet, geben wir die Funktion zurück (beenden Sie), da wir nichts anderes tun müssen.
Wenn die oben genannten Überprüfungen bestehen, sind die beiden Tinymce -WordPress -Filter registriert - mce_external_plugins und mce_buttons.Der erste Filter - MCE_External_plugins - ermöglicht es uns, die Tinymce JavaScript -Plugin -Datei zu registrieren, die mit dem visuellen Editor interagiert. Fügen wir einen Funktionsaufruf für diesen Filter in unserer Klasse hinzu:
<span>/** </span><span>* Check if the current user can edit Posts or Pages, and is using the Visual Editor </span><span>* If so, add some filters so we can register our plugin </span><span>*/ </span><span>function setup_tinymce_plugin() { </span> <span>// Check if the logged in WordPress User can edit Posts or Pages </span> <span>// If not, don't register our TinyMCE plugin </span> <span>if ( ! current_user_can( 'edit_posts' ) && ! current_user_can( 'edit_pages' ) ) { </span> <span>return; </span> <span>} </span> <span>// Check if the logged in WordPress User has the Visual Editor enabled </span> <span>// If not, don't register our TinyMCE plugin </span> <span>if ( get_user_option( 'rich_editing' ) !== 'true' ) { </span> <span>return; </span> <span>} </span> <span>// Setup some filters </span> <span>add_filter( 'mce_external_plugins', array( &$this, 'add_tinymce_plugin' ) ); </span> <span>add_filter( 'mce_buttons', array( &$this, 'add_tinymce_toolbar_button' ) ); </span> <span>}</span>
Der zweite Filter - MCE_BUTTONS - sagt Tinymce, dass wir eine Schaltfläche im visuellen Editor registrieren möchten. Lassen Sie uns erneut einen Funktionsaufruf für diesen Filter in unserer Klasse hinzufügen:
<span>/** </span><span> * Adds a TinyMCE plugin compatible JS file to the TinyMCE / Visual Editor instance </span><span> * </span><span> * <span>@param <span>array</span> $plugin_array Array of registered TinyMCE Plugins </span></span><span> * <span>@return <span>array</span> Modified array of registered TinyMCE Plugins </span></span><span> */ </span><span>function add_tinymce_plugin( $plugin_array ) { </span> <span>$plugin_array['custom_class'] = plugin_dir_url( __FILE__ ) . 'tinymce-custom-class.js'; </span> <span>return $plugin_array; </span> <span>}</span>
Erstellen des JavaScript -Plugins
Erstellen Sie eine neue Datei im Plugin-Ordner namens Tinymce-Custom-class.js, wobei der folgende Code einfügt:
<span>/** </span><span> * Adds a button to the TinyMCE / Visual Editor which the user can click </span><span> * to insert a custom CSS class. </span><span> * </span><span> * <span>@param <span>array</span> $buttons Array of registered TinyMCE Buttons </span></span><span> * <span>@return <span>array</span> Modified array of registered TinyMCE Buttons </span></span><span> */ </span><span>function add_tinymce_toolbar_button( $buttons ) { </span> <span>array_push( $buttons, 'custom_class' ); </span> <span>return $buttons; </span> <span>}</span>
Erstellen oder bearbeiten Sie als nächstes eine Seite oder einen Beitrag, und Sie werden hoffentlich Ihre Schaltfläche mit dem Symbol sehen:
Klicken Sie auf! Alarm:
Ersetzen wir die Warnung durch Eingabeaufforderung und fragen Sie den Benutzer nach dem CSS -Klassennamen, den er im visuellen Editor um den ausgewählten Text einwickeln möchte:
<span>/** </span><span> * Plugin Name: TinyMCE Custom Class </span><span> * Plugin URI: https://www.sitepoint.com </span><span> * Version: 1.0 </span><span> * Author: Tim Carr </span><span> * Author URI: http://www.n7studios.co.uk </span><span> * Description: TinyMCE Plugin to wrap selected text in a custom CSS class, within the Visual Editor </span><span> * License: GPL2 </span><span> */ </span> <span>class TinyMCE_Custom_Class { </span> <span>/** </span><span> * Constructor. Called when the plugin is initialised. </span><span> */ </span> <span>function __construct() { </span> <span>} </span> <span>} </span> <span>$tinymce_custom_class = new TinyMCE_Custom_Class;</span>
Dieser Befehl führt ein paar geistige Überprüfungen aus, um sicherzustellen, dass der Benutzer einen Text ausgewählt hat, einen CSS -Klassennamen eingegeben und den Vorgang nicht abgesagt hat.
Wenn diese Überprüfungen bestehen, führen wir die ExecCommand -Funktion des Editors aus, um den ausgewählten Text durch den ausgewählten Text zu ersetzen, der in einem Spann -Tag eingewickelt ist, das die inputierte CSS -Klasse enthält.
Wenn alles funktioniert hat, wechseln Sie zur Ansicht "Text", und Sie sehen, dass Ihr ausgewählter Text jetzt in ein Span -Tag eingewickelt ist:
Wir haben ein WordPress -Plugin erstellt, um dem Tinymce Visual Editor eine Schaltfläche hinzuzufügen. In diesem Prozess haben wir die Filter, die WordPress verwendet, für die Integration mit Tinymce sowie den JavaScript -Code untersucht, der zum Hinzufügen einer Schaltfläche und beim Klicken eine Aktion erforderlich ist.
Um den vollständigen Quellcode herunterzuladen, besuchen Sie das GitHub -Repository oder den Download -Link Direkte ZIP -Datei.
Im nächsten Artikel werden wir einige fortgeschrittenere Schritte behandeln, die wir unternehmen können, um unser Tinymce -Plugin weiter anzupassen.
Das obige ist der detaillierte Inhalt vonHinzufügen einer benutzerdefinierten Funktionalität zum visuellen Editor von WordPress. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!