wordpress durch eigene plugins erweitern
Post on 07-Jul-2015
168 Views
Preview:
DESCRIPTION
TRANSCRIPT
Wordpress durch eigene Plugins erweitern
#wpblogger Hannover15.02.2012
Frank Staude <frank@staude.net>
Download der Folie und der Beispiele unter http://www.staude.net/vortrage/
Warum Plugins?
• Unabhängig vom Theme• Hinzufügen neuer Funktionen• Entfernen vorhandener Funktionen• Funktionen ersetzen.
Plugins
PluginMindestens eine PHP Datei mit Metadaten
4
Hooks
WordPress basiert auf dem Hook-System. Dieses dient WordPress und allen Erweiterungen um Funktionen an bestimmter Stelle einzubringen. Die Hooks sind aber nicht nur zum einhaken, sondern können ebenso in eigene Erweiterungen genutzt werden (Stichwort: do_action() ).
Filter und Actions
2 Arten von Hooks• Filter machen etwas mit dem Inhalt.
add_filter()• Actions reagieren auf Aktionen
add_action()
Alle Filter- (Filters) und Tätigkeits-Hooks (Actions) sind auf der Plugin-API-Seite zu finden oder auf dem Blog WordPress Hooks ausführlich erklärt.
Einfacher Filteradd_filter(Element, Funktion);
Siehe Beispiel 1 im Zip mit dem Beispielen.
// Einfacher Filter, Alles in kleinschrift wandeln.
add_filter('the_content', 'hello_world');
function hello_world($content) { return strtolower($content);
Einfache Aktionadd_action(Action, Funktion);
Siehe Beispiel 2 im Zip mit dem Beispielen.
// Einfache Aktion. Dem Kopf etwas hinzufügen.add_action('wp_head', 'hello_world');
function hello_world() { echo "<script type=\"text/javascript\" > irgendein
JS; </script>\n"; }
Einstellung DeaktivierenBeispiel. Die Kategoriezuordnung entfernen
Siehe Beispiel 3 im Zip mit dem Beispielen.
add_action('admin_menu', 'remove_meta_boxes' );
function remove_meta_boxes() { remove_meta_box('categorydiv', 'post', 'normal');}
Beispiel: Kategoriezuordnung ersetzen.
Original Wordpress Dialog
Eigener Dialog
Beispiel: Kategoriezuordnung ersetzen.
Aufgaben um den Kategorie Dialog auszutauschen.• Altes Dialogfeld entfernen• Neues Dialogfeld hinzufügen• Neues Dialogfeld mit Inhalt füllen• Daten des neuen Dialogs speichern, wenn der
Benutzer auf Speichern/Veröffentlichen des Artikels klickt.
Beispiel: Kategoriezuordnung ersetzen.
Siehe Beispiel 4 (bzw Beispiel 5 als Implementierung in einer Klasse) im Zip mit dem Beispielen.
add_action('admin_menu', 'my_remove_meta_boxes' );add_action('admin_menu', 'my_plugin_menu');add_action('save_post', 'my_plugin_savepost');
function my_remove_meta_boxes() { remove_meta_box('categorydiv', 'post', 'normal');}
function my_plugin_menu() { add_meta_box("x_cat", "Kategorie", "my_plugin_htmloutput", "post");}
function my_plugin_savepost($post_id) { // Code zum Speichern der Kategorien zum Post }
function my_plugin_htmloutput(){ // HTML mit dem Inhalt der neuen Box. In diesem Beispiel // jQuery dynatree mit Inhalt aus den term_taxonomy und terms Tabellen}
Beliebte Fehler• DB Prefix
Die Tabellen müssen nicht mit wp_ anfangen.• MultiSite
Du bist nicht zwingend alleine in der Site.• Prefixe für Classen/Funktionen
Auch andere Pluginprogrammierer können den naheliegendsten Namen wählen.
• Kapsel deine Klasse/Funktion mit class_exists / function_exists um zu verhindern das die doppelte Deklaration das ganze System crasht (und normal User es nicht mehr rückgängmachen kann).
BücherDas WordPress-Buch von Frank BültgeErläutert auch kurz das schreiben eines Plugins.
Deutsch, 34,90 €
WordPress 3 Plugin Development Essentials von Brian Bondari undEverett Griffiths.
English. 36 US$Als Ebook manchmal beim Verlag im Angebot als Bundle mit Wordpress SEO für zusammen 20 €
top related