1. Wordpress durch
eigene Plugins erweitern
#wpblogger Hannover
15.02.2012
Frank Staude <frank@staude.net>
Download der Folie und der Beispiele unter
http://www.staude.net/vortrage/
5. 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() ).
6. 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.
7. Einfacher Filter
add_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);
8. Einfache Aktion
add_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";
}
9. Einstellung Deaktivieren
Beispiel. 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');
}
11. 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.
12. 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
}
13. 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).
14. Bücher
Das WordPress-Buch von Frank Bültge
Erlä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 €