SlideShare a Scribd company logo
1 of 14
Download to read offline
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/
Warum Plugins? 
• Unabhängig vom Theme 
• Hinzufügen neuer Funktionen 
• Entfernen vorhandener Funktionen 
• Funktionen ersetzen.
Plugins
Plugin 
Mindestens 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 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);
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"; 
}
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'); 
}
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ü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 €

More Related Content

Viewers also liked

16. LTG-Sitzung am 27. Mai 2010
16. LTG-Sitzung am 27. Mai 201016. LTG-Sitzung am 27. Mai 2010
16. LTG-Sitzung am 27. Mai 2010Stephan Tauschitz
 
Modelos atomicos cooregida
Modelos atomicos cooregidaModelos atomicos cooregida
Modelos atomicos cooregidaprofesora2406
 
Operadores mecanicos
Operadores mecanicosOperadores mecanicos
Operadores mecanicoselozanoaragon
 
Folien tertiarisierung futter
Folien tertiarisierung futterFolien tertiarisierung futter
Folien tertiarisierung futterFutter Kathrin
 
Warum studiere ich Geschichte
Warum studiere ich GeschichteWarum studiere ich Geschichte
Warum studiere ich Geschichteyoni456
 
FileMaker Konferenz 2012 Lightning Presentation
FileMaker Konferenz 2012 Lightning PresentationFileMaker Konferenz 2012 Lightning Presentation
FileMaker Konferenz 2012 Lightning PresentationMartin Brändle
 
biology first-Marketing: Erfolgreiche Marken beginnen und enden im Hirn!
biology first-Marketing: Erfolgreiche Marken beginnen und enden im Hirn!biology first-Marketing: Erfolgreiche Marken beginnen und enden im Hirn!
biology first-Marketing: Erfolgreiche Marken beginnen und enden im Hirn!Kremer und Konsorten
 
0006 edu modelos-educativos-ii
0006 edu modelos-educativos-ii0006 edu modelos-educativos-ii
0006 edu modelos-educativos-iiangele13111994
 
Herramientas informativas para internet
Herramientas informativas para internetHerramientas informativas para internet
Herramientas informativas para internetcastro__c4
 
Ambiente word de la gran manera
Ambiente word de la gran maneraAmbiente word de la gran manera
Ambiente word de la gran manerajsduartec2008
 
Technische Dokumentation | weyer spezial
Technische Dokumentation | weyer spezialTechnische Dokumentation | weyer spezial
Technische Dokumentation | weyer spezialweyer gruppe
 
Planificador de proyectos
Planificador de proyectosPlanificador de proyectos
Planificador de proyectosAna Valdés
 
Competencias comunicativas
Competencias comunicativasCompetencias comunicativas
Competencias comunicativasricardog97
 

Viewers also liked (20)

16. LTG-Sitzung am 27. Mai 2010
16. LTG-Sitzung am 27. Mai 201016. LTG-Sitzung am 27. Mai 2010
16. LTG-Sitzung am 27. Mai 2010
 
Modelos atomicos cooregida
Modelos atomicos cooregidaModelos atomicos cooregida
Modelos atomicos cooregida
 
Marketing Highlights 2012
Marketing Highlights 2012Marketing Highlights 2012
Marketing Highlights 2012
 
Trabajo final tic
Trabajo final ticTrabajo final tic
Trabajo final tic
 
Operadores mecanicos
Operadores mecanicosOperadores mecanicos
Operadores mecanicos
 
Bebida refrescante
Bebida refrescante Bebida refrescante
Bebida refrescante
 
Folien tertiarisierung futter
Folien tertiarisierung futterFolien tertiarisierung futter
Folien tertiarisierung futter
 
Laglobalizacion
Laglobalizacion Laglobalizacion
Laglobalizacion
 
Warum studiere ich Geschichte
Warum studiere ich GeschichteWarum studiere ich Geschichte
Warum studiere ich Geschichte
 
FileMaker Konferenz 2012 Lightning Presentation
FileMaker Konferenz 2012 Lightning PresentationFileMaker Konferenz 2012 Lightning Presentation
FileMaker Konferenz 2012 Lightning Presentation
 
biology first-Marketing: Erfolgreiche Marken beginnen und enden im Hirn!
biology first-Marketing: Erfolgreiche Marken beginnen und enden im Hirn!biology first-Marketing: Erfolgreiche Marken beginnen und enden im Hirn!
biology first-Marketing: Erfolgreiche Marken beginnen und enden im Hirn!
 
Trabajo final tic
Trabajo final ticTrabajo final tic
Trabajo final tic
 
0006 edu modelos-educativos-ii
0006 edu modelos-educativos-ii0006 edu modelos-educativos-ii
0006 edu modelos-educativos-ii
 
Herramientas informativas para internet
Herramientas informativas para internetHerramientas informativas para internet
Herramientas informativas para internet
 
Ambiente word de la gran manera
Ambiente word de la gran maneraAmbiente word de la gran manera
Ambiente word de la gran manera
 
Technische Dokumentation | weyer spezial
Technische Dokumentation | weyer spezialTechnische Dokumentation | weyer spezial
Technische Dokumentation | weyer spezial
 
Planificador de proyectos
Planificador de proyectosPlanificador de proyectos
Planificador de proyectos
 
Estudio_sobre_el_Líder
Estudio_sobre_el_LíderEstudio_sobre_el_Líder
Estudio_sobre_el_Líder
 
Los valores
Los valoresLos valores
Los valores
 
Competencias comunicativas
Competencias comunicativasCompetencias comunicativas
Competencias comunicativas
 

More from frankstaude

State of TV – Vortragsaufzeichnung, aktueller Stand und Ausblick
State of TV – Vortragsaufzeichnung, aktueller Stand und AusblickState of TV – Vortragsaufzeichnung, aktueller Stand und Ausblick
State of TV – Vortragsaufzeichnung, aktueller Stand und Ausblickfrankstaude
 
Automatisierung in Zeiten von Social Media, Messenger-Diensten und Bots
Automatisierung in Zeiten von Social Media, Messenger-Diensten und BotsAutomatisierung in Zeiten von Social Media, Messenger-Diensten und Bots
Automatisierung in Zeiten von Social Media, Messenger-Diensten und Botsfrankstaude
 
CPT UI und ACF - Wie werden Inhalte sinnvoll strukturiert?
CPT UI und ACF - Wie werden Inhalte sinnvoll strukturiert?CPT UI und ACF - Wie werden Inhalte sinnvoll strukturiert?
CPT UI und ACF - Wie werden Inhalte sinnvoll strukturiert?frankstaude
 
TablePress - Warum und welche Erweiterungen gibt es?
TablePress - Warum und welche Erweiterungen gibt es?TablePress - Warum und welche Erweiterungen gibt es?
TablePress - Warum und welche Erweiterungen gibt es?frankstaude
 
Gamifizierung mit WordPress – Eine Einführung und Einsatz in der Schule
Gamifizierung mit WordPress – Eine Einführung und Einsatz in der SchuleGamifizierung mit WordPress – Eine Einführung und Einsatz in der Schule
Gamifizierung mit WordPress – Eine Einführung und Einsatz in der Schulefrankstaude
 
Erneute Bestellung in WooCommerce
Erneute Bestellung in WooCommerceErneute Bestellung in WooCommerce
Erneute Bestellung in WooCommercefrankstaude
 
Gamification mit WordPress
Gamification mit WordPressGamification mit WordPress
Gamification mit WordPressfrankstaude
 
Mobile Apps mit WordPress
Mobile Apps mit WordPressMobile Apps mit WordPress
Mobile Apps mit WordPressfrankstaude
 
Suchst du noch - Oder findest du schon?
Suchst du noch - Oder findest du schon?Suchst du noch - Oder findest du schon?
Suchst du noch - Oder findest du schon?frankstaude
 
State of TV - Stand der Vortragsaufzeichnung 11/2017
State of TV - Stand der Vortragsaufzeichnung 11/2017State of TV - Stand der Vortragsaufzeichnung 11/2017
State of TV - Stand der Vortragsaufzeichnung 11/2017frankstaude
 
Suchst du noch - Oder findest du schon?
Suchst du noch - Oder findest du schon?Suchst du noch - Oder findest du schon?
Suchst du noch - Oder findest du schon?frankstaude
 
Suchst du noch? Oder findest du schon?
Suchst du noch? Oder findest du schon?Suchst du noch? Oder findest du schon?
Suchst du noch? Oder findest du schon?frankstaude
 
Themes – Wieso, Weshalb, Warum!?
Themes – Wieso, Weshalb, Warum!?Themes – Wieso, Weshalb, Warum!?
Themes – Wieso, Weshalb, Warum!?frankstaude
 
Eine WordPress Meetup Webseite auf Autopilot
Eine WordPress Meetup Webseite auf AutopilotEine WordPress Meetup Webseite auf Autopilot
Eine WordPress Meetup Webseite auf Autopilotfrankstaude
 
Vorträge aufzeichnen ohne Nachbearbeitung
Vorträge aufzeichnen ohne NachbearbeitungVorträge aufzeichnen ohne Nachbearbeitung
Vorträge aufzeichnen ohne Nachbearbeitungfrankstaude
 
Nürnberg WordPress Meetup - Custom Post Types mit PODS.io
Nürnberg WordPress Meetup - Custom Post Types mit PODS.ioNürnberg WordPress Meetup - Custom Post Types mit PODS.io
Nürnberg WordPress Meetup - Custom Post Types mit PODS.iofrankstaude
 
WordPress - eigene Plugins erstellen
WordPress - eigene Plugins erstellenWordPress - eigene Plugins erstellen
WordPress - eigene Plugins erstellenfrankstaude
 
Custom Post Types mit PODS.io
Custom Post Types mit PODS.ioCustom Post Types mit PODS.io
Custom Post Types mit PODS.iofrankstaude
 
Suchst du noch? Oder findest du schon?
Suchst du noch? Oder findest du schon?Suchst du noch? Oder findest du schon?
Suchst du noch? Oder findest du schon?frankstaude
 

More from frankstaude (20)

State of TV – Vortragsaufzeichnung, aktueller Stand und Ausblick
State of TV – Vortragsaufzeichnung, aktueller Stand und AusblickState of TV – Vortragsaufzeichnung, aktueller Stand und Ausblick
State of TV – Vortragsaufzeichnung, aktueller Stand und Ausblick
 
Automatisierung in Zeiten von Social Media, Messenger-Diensten und Bots
Automatisierung in Zeiten von Social Media, Messenger-Diensten und BotsAutomatisierung in Zeiten von Social Media, Messenger-Diensten und Bots
Automatisierung in Zeiten von Social Media, Messenger-Diensten und Bots
 
CPT UI und ACF - Wie werden Inhalte sinnvoll strukturiert?
CPT UI und ACF - Wie werden Inhalte sinnvoll strukturiert?CPT UI und ACF - Wie werden Inhalte sinnvoll strukturiert?
CPT UI und ACF - Wie werden Inhalte sinnvoll strukturiert?
 
TablePress - Warum und welche Erweiterungen gibt es?
TablePress - Warum und welche Erweiterungen gibt es?TablePress - Warum und welche Erweiterungen gibt es?
TablePress - Warum und welche Erweiterungen gibt es?
 
Gamifizierung mit WordPress – Eine Einführung und Einsatz in der Schule
Gamifizierung mit WordPress – Eine Einführung und Einsatz in der SchuleGamifizierung mit WordPress – Eine Einführung und Einsatz in der Schule
Gamifizierung mit WordPress – Eine Einführung und Einsatz in der Schule
 
Erneute Bestellung in WooCommerce
Erneute Bestellung in WooCommerceErneute Bestellung in WooCommerce
Erneute Bestellung in WooCommerce
 
Gamification mit WordPress
Gamification mit WordPressGamification mit WordPress
Gamification mit WordPress
 
Mobile Apps mit WordPress
Mobile Apps mit WordPressMobile Apps mit WordPress
Mobile Apps mit WordPress
 
Suchst du noch - Oder findest du schon?
Suchst du noch - Oder findest du schon?Suchst du noch - Oder findest du schon?
Suchst du noch - Oder findest du schon?
 
State of TV - Stand der Vortragsaufzeichnung 11/2017
State of TV - Stand der Vortragsaufzeichnung 11/2017State of TV - Stand der Vortragsaufzeichnung 11/2017
State of TV - Stand der Vortragsaufzeichnung 11/2017
 
Suchst du noch - Oder findest du schon?
Suchst du noch - Oder findest du schon?Suchst du noch - Oder findest du schon?
Suchst du noch - Oder findest du schon?
 
Suchst du noch? Oder findest du schon?
Suchst du noch? Oder findest du schon?Suchst du noch? Oder findest du schon?
Suchst du noch? Oder findest du schon?
 
Themes – Wieso, Weshalb, Warum!?
Themes – Wieso, Weshalb, Warum!?Themes – Wieso, Weshalb, Warum!?
Themes – Wieso, Weshalb, Warum!?
 
Eine WordPress Meetup Webseite auf Autopilot
Eine WordPress Meetup Webseite auf AutopilotEine WordPress Meetup Webseite auf Autopilot
Eine WordPress Meetup Webseite auf Autopilot
 
Vorträge aufzeichnen ohne Nachbearbeitung
Vorträge aufzeichnen ohne NachbearbeitungVorträge aufzeichnen ohne Nachbearbeitung
Vorträge aufzeichnen ohne Nachbearbeitung
 
Nürnberg WordPress Meetup - Custom Post Types mit PODS.io
Nürnberg WordPress Meetup - Custom Post Types mit PODS.ioNürnberg WordPress Meetup - Custom Post Types mit PODS.io
Nürnberg WordPress Meetup - Custom Post Types mit PODS.io
 
WordPress - eigene Plugins erstellen
WordPress - eigene Plugins erstellenWordPress - eigene Plugins erstellen
WordPress - eigene Plugins erstellen
 
Custom Post Types mit PODS.io
Custom Post Types mit PODS.ioCustom Post Types mit PODS.io
Custom Post Types mit PODS.io
 
Suchst du noch? Oder findest du schon?
Suchst du noch? Oder findest du schon?Suchst du noch? Oder findest du schon?
Suchst du noch? Oder findest du schon?
 
Pressmatic
PressmaticPressmatic
Pressmatic
 

Wordpress durch eigene Plugins erweitern

  • 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/
  • 2. Warum Plugins? • Unabhängig vom Theme • Hinzufügen neuer Funktionen • Entfernen vorhandener Funktionen • Funktionen ersetzen.
  • 4. Plugin Mindestens eine PHP Datei mit Metadaten 4
  • 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'); }
  • 10. Beispiel: Kategoriezuordnung ersetzen. Original Wordpress Dialog Eigener Dialog
  • 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 €