Wordpress durch eigene Plugins erweitern

14

Click here to load reader

description

Wordpress durch eigene Plugins erweitern. Vortrag #wpblogger Hannover 15.02.2012

Transcript of Wordpress durch eigene Plugins erweitern

Page 1: Wordpress durch eigene Plugins erweitern

Wordpress durch eigene Plugins erweitern

#wpblogger Hannover15.02.2012

Frank Staude <[email protected]>

Download der Folie und der Beispiele unter http://www.staude.net/vortrage/

Page 2: Wordpress durch eigene Plugins erweitern

Warum Plugins?

• Unabhängig vom Theme• Hinzufügen neuer Funktionen• Entfernen vorhandener Funktionen• Funktionen ersetzen.

Page 3: Wordpress durch eigene Plugins erweitern

Plugins

Page 4: Wordpress durch eigene Plugins erweitern

PluginMindestens eine PHP Datei mit Metadaten

4

Page 5: Wordpress durch eigene Plugins erweitern

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() ).

Page 6: Wordpress durch eigene Plugins erweitern

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.

Page 7: Wordpress durch eigene Plugins erweitern

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

Page 8: Wordpress durch eigene Plugins erweitern

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"; }

Page 9: Wordpress durch eigene Plugins erweitern

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

Page 10: Wordpress durch eigene Plugins erweitern

Beispiel: Kategoriezuordnung ersetzen.

Original Wordpress Dialog

Eigener Dialog

Page 11: Wordpress durch eigene Plugins erweitern

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.

Page 12: Wordpress durch eigene Plugins erweitern

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}

Page 13: Wordpress durch eigene Plugins erweitern

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).

Page 14: Wordpress durch eigene Plugins erweitern

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 €