Schreiben einer Plugin für WordPress. Um eine Seite Plugin-Einstellungen (Teil 4) zu schaffen
Inhaltsverzeichnis für den Kurs, um ein Plugin für WordPress erstellen
- Einführung, allgemeine Informationen (schreibt man einen Plugin für WordPress. Teil 1.)
- Die Allgemeine Theorie (schreibt man einen Plugin für WordPress. Teil 2.)
- Vorbereiten auf die Seite Einstellungen zu erstellen (schreibt man einen Plugin für WordPress. Teil 3.)
- Um eine Seite zu erstellen Plugin-Einstellungen (schreibt man einen Plugin für WordPress. Teil 4.)
- Die funktionale Komponente (schreibt man einen Plugin für WordPress. Teil 5.)
- Internationalisierung und Russifizierung (schreibt man einen Plugin für WordPress. Teil 6.)
- Hinzufügen zum WordPress.org Repository (schreibt man einen Plugin für WordPress. Teil 7.)
- Quellcodedatei für WordPress Plugin
Erstellen der Seite Einstellungen für WordPress Plugin
Wir werden weiterhin das Gespräch dazu, wie ein Plugin für WordPress zu schreiben.
In der letzten Zeit diskutierten wir vorkonfigurieren WordPress Plugin, und nun versuchen, auf die administrative Seite zu schreiben. Für den Anfang gibt die Möglichkeit, die Seite zu erstellen, und konzentrieren uns dann auf einige Punkte im Detail. Im Prinzip ist die grundlegende Informationen in einem früheren Teil des Tutorials gegeben wurde, hier ist ganz einfach Code mit Kommentaren.
Funktion, um eine Seite Einstellungen für das Plugin WordPress erstellen
Ein 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 | myplugin_options_page Funktion () {/ / Funktion zur Erstellung und Verarbeitung Plug-In Settings-Seite global $ wpdb, $ myplugin_prefs_table; $ Myplugin_options = array (/ / Erstellen Sie ein Array von Plug-In-Einstellungen 'Myplug_modify_title', 'Myplug_modify_content', ); $ Cmd = $ _POST ['cmd']; / / Benutzereingaben verarbeiten foreach ($ myplugin_options wie $ myplugin_opt) { $ $ = Myplugin_opt get_option ($ myplugin_opt); } if ($ cmd == "del_prefs") {/ / Wenn gedrückt "löschen Sie die Phrase" - Reinigen Sie die Tabelle Einstellungen, Plug-in $ Sql = "TRUNCATE TABLE $ myplugin_prefs_table"; $ Wpdb-> query ($ sql); ?> __ ( 'All phrases are removed from the database' , 'example_plugin' ) ; ?> </strong></p></div> /* Сообщаем пользвателю об успешной очистке. <div class="updated"> <p> <php echo __ ('Alle Sätze werden aus der Datenbank entfernt', 'example_plugin');?> </ strong> </ p> </ div> / * Wir berichten über die erfolgreiche Behandlung polzvatelyu. * / <? Php } $cmd == "add_prefs" && $_POST [ 'prefs_base' ] ) { //Если введены новые фразы в соотв. if ($ cmd == "add_prefs" && $ _POST ['prefs_base']) {/ / Wenn ein neuer Begriff in der ACC eingegeben. Feld - wird sie zu verarbeiten explode ( " \n " , $_POST [ 'prefs_base' ] ) ; //Ввод разбивается на строки и кладётся в массив, разделитель - перевод строки $ Lines = explode ("\ n", $ _POST ['prefs_base']); / / Die Eingabe ist in Zeilen aufgeteilt und in einem Array, Abscheider - Linie $lines as $line ) { //Перебираем массив со строками foreach ($ Zeilen wie $ line) {/ / durch ein Array von Strings iterieren trim ( $line ) ; //Обрезка каждой строки от переводов $ Line = trim ($ line); / / Trim jede Zeile von Transfers ! $line ) continue ; //Если строка отстутствует - переходим к следующей итерации if ($ Zeile!) fortzusetzen; / / Wenn die Zeile out-Datum - an die nächste Iteration gehen $title , $body ) = explode ( "|" , $line ) ; //Разделение строки на две подстроки list ($ title, $ body) = explode ("|", $ line); / / Eine Zeichenkette in zwei Teilzeichenfolgen / / Setzt ein Teilstring in der Tabelle Plugin. "INSERT INTO $myplugin_prefs_table (title, body) VALUES(' $title ',' $body ')" ; $ Sql = "INSERT INTO $ myplugin_prefs_table (title, body) VALUES ('$ titel', '$ body')"; query ( $sql ) ; $ Wpdb -> query ($ sql); } ?> __ ( 'Phrases added to the database' , 'example_plugin' ) ; ?> </strong></p></div> /*Сообщаем пользователю об успешной обработке*/ <div class="updated"> <p> <php echo __ ('Sätze hinzugefügt, um die Datenbank', 'example_plugin');?> </ strong> </ p> </ div> / * Wir berichten der Benutzer über die erfolgreiche Behandlung * / <? Php } $cmd == "myplugin_save_opt" ) { //Обработка нажатия "Сохранить настройки" if ($ cmd == "myplugin_save_opt") {/ / Verarbeitung der Klick auf "Einstellungen speichern" $myplugin_options as $myplugin_opt ) { //Перебор массива с настройками foreach ($ myplugin_options wie $ myplugin_opt) {/ / Durchlaufe die Array-Konfiguration $_POST [ $myplugin_opt ] ; //Каждому элементу массива присваиваем введённое пользователем занчение $ $ Myplugin_opt = $ _POST [$ myplugin_opt]; / / zuweisen jedes Element des Arrays durch den Nutzer eingegeben zanchenie } $myplugin_options as $myplugin_opt ) { //Обновляем настройки плагина в таблице настроек wordpress foreach ($ myplugin_options wie $ myplugin_opt) {/ / Aktualisieren Sie die Plugin-Einstellungen in der Tabelle Einstellungen WordPress , $$myplugin_opt ) ; update_option ($ myplugin_opt, $ $ myplugin_opt); } ?> __ ( 'Settings saved' , 'example_plugin' ) ; ?> </strong></p></div> <div class="updated"> <p> <php echo __ ('Einstellungen gespeichert', 'example_plugin');?> </ strong> </ p> </ div> <? Php } ?> <div class="wrap"> <h2> mein Plugin </ h2> / * Page Title Plugin-Einstellungen * / __ ( 'Settings' , 'example_plugin' ) ; ?> </h3> /*Название раздела настроек*/ <h3> <php echo __ ('Einstellungen', 'example_plugin');?> </ h3> / * Der Name des Abschnitts Einstellungen * / / * Start der Verarbeitung Optionen für das Formular. Das Formular enthält zwei Checkboxen aktivieren oder deaktivieren Sie das entsprechende Plug-In-Funktion * / $_SERVER [ 'REQUEST_URI' ] ; ?> "> <Form method = "post" action = "<echo $ _SERVER ['REQUEST_URI'];?>"> <table class="form-table"> <tr> <th colspan=2 scope="row"> / * Die erste Option - übernimmt das Plug-In-Header-Record * / ( $myplug_modify_title ) echo "checked" ; ?> > <?php echo __ ( 'Add random phrase to post title' , 'example_plugin' ) ; ?> <Eingang name = "myplug_modify_title" type = "checkbox" <If ($ myplug_modify_title) echo "checked";? >> <Php echo __ ('Add zufälligen Satz zu posten Titel', 'example_plugin');?> </ Th> </ Tr> <tr> <th colspan=2 scope="row"> / * Die zweite Option - ob das Plug-in, um den Körper von Datensätzen verarbeiten * / ( $myplug_modify_content ) echo "checked" ; ?> > <?php echo __ ( 'Add random phrase to post content' , 'example_plugin' ) ; ?> <Eingang name = "myplug_modify_content" type = "checkbox" <If ($ myplug_modify_content) echo "checked";? >> <Php echo __ ('Add zufälligen Satz zu Inhalt posten', 'example_plugin');?> </ Th> </ Tr> </ Table> <input type="hidden" name="cmd" value="myplugin_save_opt"> / * "funktionellen" Teil der Schaltfläche Einstellungen speichern * / <p class="submit"> 'Save Changes' ) ?> " /> /*Вывод кнопки сохранения настроек в браузер. <Input type = "submit" name = "Submit" value = "<? Php _e ('Save Changes')?>" /> / * Ausgabe-Taste, um Ihren Browser zu speichern. Serienmäßige Ausstattung Wordpress * / </ P> </ Form> / * Ende der Formularverarbeitung Optionen * / / * Anzeigen Informationen über das Plugin. Zum Beispiel - wer arbeitete * / __ ( 'Plugin developed' , 'example_plugin' ) ; ?> </h3> <h3> <php echo __ ('Plugin entwickelt', 'example_plugin');?> </ h3> <table class="form-table"> <tr> <th> <ul> __ ( 'By: <a href="http://www.dimio.org/" target="_blank">dimio</a>' , 'example_plugin' ) ; ?> </li> <li> <php echo __ ('By: <a href="http://www.dimio.org/" dimio target="_blank"> </ a>', 'example_plugin');?> </ li> </ Ul> </ Th> </ tr> </ table> / * Gegen die Einführung von neuen Sätze in der Tabelle Einstellungen, Plug-In. Die erste ist die Referenz für den Benutzer * / __ ( 'Adding phrases' , 'example_plugin' ) ; ?> </h3> <h3> <php echo __ ('Hinzufügen Phrasen', 'example_plugin');?> </ h3> / * Starten Sie das Eingabeformular. Das Formular enthält ein Textfeld für die Eingabe einer Breite von 80 Zeichen und eine Höhe von 12 Zeilen * / <table class="form-table" width="300px"> <tr> <td> __ ( 'Format phrases: Title|Body' , 'example_plugin' ) ; ?> <br /> <Php echo __ ('Format Sätze: Titel | Körper', 'example_plugin');?> <br /> $_SERVER [ 'REQUEST_URI' ] ; ?> "> <Form method = "post" action = "<echo $ _SERVER ['REQUEST_URI'];?>"> <textarea cols=80 rows=12 name="prefs_base"> </ textarea> / * Feld für die Eingabe einer neuen Phrase * / </ Td> </ Tr> </ Table> / *-Taste zum Speichern Phrasen. In Anlehnung an die Schaltfläche Einstellungen speichern, aber ohne den Einsatz eines Standard-Piano, und Wordpress * / <input type="hidden" name="cmd" value="add_prefs"> <p class="submit"> __ ( 'Add phrases' , 'example_plugin' ) ; ?> " /> <Input type = "submit" name = "Submit" value = "<php echo __ ('Add Phrasen', 'example_plugin');?>" /> </ P> </ Form> / * Das Formular enthält eine einzige Taste - Reinigen Sie das Plugin-Einstellungen Tabelle * / $_SERVER [ 'REQUEST_URI' ] ; ?> "> <Form method = "post" action = "<echo $ _SERVER ['REQUEST_URI'];?>"> <input type="hidden" name="cmd" value="del_prefs"> __ ( 'Remove all phrases from the database' , 'example_plugin' ) ; ?> " /> <Input type = "submit" name = "Submit" value = "<php echo __ ('Entfernen Sie alle Sätze aus der Datenbank', 'example_plugin');?>" /> </ Form> </ Div> <? Php / / Beenden Sie die Erstellung und Bearbeitung Funktionen der Seite Einstellungen. } ?> |
Ich habe versucht, in den Code zu kommentieren alle wichtigen Punkte für das Verständnis, auf jeden Fall lesenswert über HTML-und CGI-Programmierung im Allgemeinen ist. Obwohl im Prinzip - alles ist intuitiv, und wenn es sein muß, um neue Elemente an den Einstellungen Seite hinzufügen - bitte, zumindest - sagen Sie mir, in welche Richtung zu graben.
In der nächsten Ausgabe werde ich untersuchen, die funktionale Teil des Plug-in für WordPress. Ich werde Ihnen sagen, wie man ein Plug-in-Funktionen zum Empfangen von Daten aus der Datenbank und Ändern von WordPress-Publikation zu schreiben.
'Add phrases' , 'example_plugin' ) ; ?> – это как раз задел для будущего грамотного перевода (фактически – интернационализации) плагина). Lassen Sie uns dann Russifizierung Plugin (sollte sorgfältig darauf bedacht, die Aufmerksamkeit auf die Herausforderungen des Formulars zu zahlen haben <?php echo __ ( 'Add phrases' , 'example_plugin' ) ; ?> - das ist nur der Grundstein für eine zukünftige Übertragung der Alphabetisierung (in der Tat - Internationalisierung) Plug-In).
Und schließlich - zeigen Ihnen, wie Sie Ihren Plug-in für Überprüfung und anschließende Veröffentlichung im Repository auf WordPress wordpress.org einreichen.
Verpassen Sie nicht! ![]()
PS Es ist immer noch zum Download zur Verfügung die Plugin-Datei bereits aktualisiert wird.
Mehr zu ähnlichen Themen:
Abgelegt unter: SEO , Blogging , Coding |
Tags: Anleitungen , Plugins , WordPress , Blog , Programmierung , Promotion |
11 Kommentare 

Im Allgemeinen kühlen Beschreibung. Aber auch weiterhin die Verwendung von entweder "Fall" empfehlen - oder den Bau von "wenn ... IfElse ... else"
Warum nicht? Nun, rein zu fassen.
Es ist klar, dass Sie einen Prozess Variable $ cmd ist - aber Sie wissen, klarer sein, wenn all diese Behandlungen eine Einheit, anstatt einzelne Formulierungen sein wird. Übrigens gibt es noch, es gibt eine Sache: Performance
Da in Ihrem Fall, wird der Code barybyr (noch) alle Bedingungen zu überprüfen. Aber durch die Anwendung der vorgeschlagenen Gestaltung der Code, um das gewünschte Ergebnis zu erreichen, stoppen Sie einfach die weitere Suche nach Konformität. Diese Verringerung der CPU-Zeit. Ein weiterer Pluspunkt. Diese Lesbarkeit. Wenn Sie sich Design-Gehäuse oder "if ... else ... IfElse" Sie wissen, dass dies eine gemeinsame Behandlung ist, und dann entweder oder. Und Sie können einen Gemeinplatz zu diesem Block punkten zu dem gewünschten Punkt
Sorry für die etwas vage Text sagen normalerweise nie konnte es nicht.
Die Idee ist im Prinzip klar. Umgeschrieben in Form, wenn {} {} elsif wird angemessen sein.
Um CPU-Zeit benötigt, um durch die Optionen, um die wahrscheinlichste Abfolge zu bauen, und nicht, wie stehen sie jetzt durchlaufen zu reduzieren.
Einschließlich.
Nun, Sie wirklich zhzhosh! So viel Code, aber immer noch keine anständige Erklärung!
Während 3 + ist die maximale
Tipp: Sie schreiben, damit die Menschen verstehen und interessant, nicht nur Sie, lieber Autor!
Vergeblich. Ich bin damit einverstanden, dass der Code nicht der beste - aber die Kommentare sind sehr klar.
Nun, es ist nicht so schlimm Code, nein! Nur einmal zog es zu schnell, wie sie sagen, kein Vorspiel
. Wir mussten irgendwie teilen sich die vorherigen Posts diese Informationen, um den Kessel (den ich nicht), selbst, es war alles klar. Aber ich habe Fragen und Themen ...
Das ist natürlich nur der Autor am Anfang eines Schlupf, er habe es gelernt, php, weil der Wunsch, ein Plugin zu schreiben. IMHO für den unerfahrenen Programmierer - Artikel-Nr.
Haben alle Beispiele auf Seite erstellen. Ich beschloss, Check-Out. Wenn Sie das Plugin aktivieren Fehlermeldung: "Plugin durch die Aktivierung von 292 Zeichen unerwartete Schlussfolgerung produziert. ... "
Notepad + +, UTF-8 ohne BOM
WP 3.1.1
3.1.1 habe ich nicht. Letzte Sache geprüft - 2.9.2.
In den Prozess des Schreibens diese Notizen machte ich ein Plugin, dass ich jetzt auf Version 3.1 arbeiten. ( .) Sie können mit ihm zu vergleichen, gibt es ein Fehler ist oder nicht.
Es ist viel einfacher. CR LF nach?>
Müssen sorgfältig