SlideShare ist ein Scribd-Unternehmen logo
1 von 14
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   Eigener Dialog
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 €

Weitere ähnliche Inhalte

Andere mochten auch

Andere mochten auch (16)

Filipenses estudiando a pablo 2 19-30
Filipenses estudiando a pablo 2 19-30Filipenses estudiando a pablo 2 19-30
Filipenses estudiando a pablo 2 19-30
 
Razas de Perros
Razas de Perros Razas de Perros
Razas de Perros
 
Tomar las riendas_de_la_vida-051021
Tomar las riendas_de_la_vida-051021Tomar las riendas_de_la_vida-051021
Tomar las riendas_de_la_vida-051021
 
Ensayo.epss
Ensayo.epssEnsayo.epss
Ensayo.epss
 
Wie die Ausstellung Silber & Gold entsteht (1/2)
Wie die Ausstellung Silber & Gold entsteht (1/2)Wie die Ausstellung Silber & Gold entsteht (1/2)
Wie die Ausstellung Silber & Gold entsteht (1/2)
 
maketa egiten
maketa egitenmaketa egiten
maketa egiten
 
hayde pp4 mc
hayde pp4 mchayde pp4 mc
hayde pp4 mc
 
Trending topic
Trending topicTrending topic
Trending topic
 
Presentazione condominio3000
Presentazione condominio3000Presentazione condominio3000
Presentazione condominio3000
 
Advertising1
Advertising1Advertising1
Advertising1
 
Advertising1
Advertising1Advertising1
Advertising1
 
Diego
DiegoDiego
Diego
 
Advertising
AdvertisingAdvertising
Advertising
 
Hanukah Gift For Abba from Amit
Hanukah Gift For Abba from AmitHanukah Gift For Abba from Amit
Hanukah Gift For Abba from Amit
 
SAP MM
SAP MMSAP MM
SAP MM
 
getsix Polen, Buchhaltung, Wroclaw, teil 7
getsix Polen, Buchhaltung, Wroclaw, teil 7getsix Polen, Buchhaltung, Wroclaw, teil 7
getsix Polen, Buchhaltung, Wroclaw, teil 7
 

Mehr von 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
 

Mehr von 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 mit eigenen 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 Eigener Dialog 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 €