Wordpress Entwicklung

Plugin mit Menü und Untermenü entwickeln

Einleitung

Wenn wir Wordpress Plugins programmieren, wollen wir vielleicht das der Benutzer bestimmte Menüs öffnen kann. Um nicht für jeden Eintrag Platz in der Administrator Übersicht zu verbrauchen, können wir Menüs in andere Menüs mit einbauen, so das wir dann diese über den "Hauptpunkt" ansteuern können.

Anwendung

Zuerst legen wir wie gewohnt unser Wordpress Plugin an.

Im Anschluss rufen wir in der Datei die PHP-Funktion add_action(). Als Parameter geben wir als erstes admin_menu an. Als zweiten Parameter geben wir eine Funktion an mit der wir nachher die Menüs aufrufen.

add_action('admin_menu','plugin_set_menu');

Als zweites schreiben wir die Funktion damit die Menüs erstellt werden können.

In der Funktion verwenden wir zuerst die PHP-Funktion add_menu_page(). Mit dieser können wir einen Eintrag in das Administrationsfenster vornehmen. 

In dieser Funktion haben wir 5 (optional: 6) Parameter.

Mit dem ersten Parameter geben wir den Namen an, unter welchem der Eintrag mit Admin Menü zu finden ist. Mit dem zweiten Parameter geben wir an, wie unser Menü im Browser Tab benannt wird. Im dritten Parameter geben wir einfach ein manage_options an. Als vierten Parameter geben wir unseren "slug", also unsere URI Erweiterung an (Erweiterung an die URL). Als letzten Parameter geben wir an, welche Funktion wir aufrufen um den Seiteninhalt darzustellen. Als sechsten Parameter können wir einen Pfad zu einer Bilddatei angeben um ein Icon festzulegen.

add_menu_page("Plugin Konfiguration", "Konfiguration", "manage_options", "plugin-config", "plugin_config_plugin");

Im nächsten Schritt setzen wir das Untermenü. Dazu verwenden wir wieder eine PHP-Funktion. Diese Funktion trägt den Namen add_submenu_page(). Diese Funktion hat 6 Parameter die wir angeben müssen.

Beim ersten Parameter geben wir den slug des Hauptmenüs an. Mit dem zweiten Parameter geben wir den Namen an, wie er im Menü auftaucht. Dann legen wir wieder den Browser Titel fest. Als vierten Parameter geben wir wieder manage_options an. Als fünften Parameter geben wir den neuen slug für die URL an die eingetragen wird, wenn die Seite aufgerufen wird. Als letzten Parameter geben wir jetzt an, welche Funktion wieder aufgerufen wird wenn der Punkt ausgewählt wird.

add_submenu_page("plugin-config","Plugin installieren", "Plugin installieren", "manage_options", "plugin-install", "plugin_install_func");

 

Wordpress Plugin Grundstruktur

Einleitung

Wenn uns der Umfang des normalen WordPress nicht ausreicht können wir selbst Plugins entwickeln. Die Wordpress Plugins werden komplett in PHP geschrieben. Das bedeutet, um Wordpress Plugins selbst zu entwickeln benötigen wir Kenntnisse in PHP und SQL (MySQL). 

Grundstruktur erstellen

Um ein Plugin zu erstellen, müssen wir im Plugin Ordner unserer Wordpress Installation einen Ordner in lowercase (kleingeschrieben) erstellen. Das Verzeichnis befindet sich unter folgendem Pfad:

/web-root/wp-content/plugins

In diesem Verzeichnis legen wir eine PHP Datei mit dem Namen unseres Ordners an. Unser Plugin werden wir debitoren nennen. Wir öffnen dann die PHP Datei mit dem Editor unserer Wahl.

cd /var/www/html/wp-content/plugins
sudo mkdir debitoren
sudo nano debitoren.php

In die Datei fügen wir einen Mehrzeiligen Kommentar hinzu in welcher wir Meta-Informationen über unser Plugin festlegen. Wir müssen den Plugin Namen festlegen. Ohne diese Information können wir unser Plugin nicht installieren. 

in der PHP Datei definieren wir nach folgender Syntax die Meta Informationen für das Plugin

/**
* Plugin Name: Debitoren Plugin
*/
Plugin Meta Informationen
Beschreibung
Plugin Name: Namen unseres Plugins festlegen.
Plugin URI: Websites unseres Plugins festlegen.
Description: Kleine Beschreibung über unser Plugin.
Version: Festlegung der Version des Plugins.
Requires at least: Definition der Minimalen Wordpress Version.
Requires PHP: Minimale PHP Version festlegen.
Author: Autor des Plugins festlegen.
Author URI: Website des Plugin Autors.
License: Lizenz unseres Plugins festlegen
License URI: Website zur Lizenz angeben.

In der PHP Datei legen wir jetzt den Code für unser Plugin fest. 

Zur besseren Struktur legen wir noch zwei Ordner mit den Namen admin und public an. In diesen Ordnern legen wir die Website Dateien für das Administrationspanel und für die generellen Informationen die für alle Sichtbar sein werden. In einem weiteren Ordner mit dem Namen inc legen wir die Klassen und Funktionen fest. Wenn wir unser Plugin auch verschiedenen Sprachen zugänglich machen wollen, dann erstellen wir noch einen Ordner mit dem Namen languages. Wir können auch eine uninstall.php Datei anlegen um dort die Deinstallation Routinen festlegen falls Datenbanken oder ähnliches gesäubert werden sollen.  

Die Routinen die bei einer Deinstallation durchgeführt werden legen wir dort innerhalb einer IF-Kontrollstruktur fest.

if (!defined('WP_UNINSTALL_PLUGIN'))
{
	// Füge Code hinzu
    exit;
}

Wordpress Template Tags

Einleitung

Bei der Entwicklung von Plugins für Wordpress benötigen wir Objekte die in der Wordpress Programmierung fest verankert sind. Dazu gehören unter anderem z.B. der eigentliche Beitrag den wir anfassen wollen, oder vielleicht andere Parameter?

Dazu verwenden wir die sogenannten template-tags. Mit diesen können wir verschiedene Dinge anfassen und auch die Objekte bearbeiten oder andere Attribute festlegen. 

Template Tags

In dieser Tabelle finden wir alle möglichen Template Tags.

Funktion
Beschreibung
the_ID() Die interne ID-Nummer des Beitrags.
the_permalink() Vollständiger Permalink des Beitrags.
the_title()

Der Beitragstitel.

the_excerpt()

Der Auszug.

the_content()

Beitragsinhalt.

the_category()

Die zugewiesenen Kategorien.

the_tags()

Die zugewiesenen Schlagwörter.

wp_tag_cloud()

Eine Rudimentäre formatierte Tag-Cloud.

next_post_link()
previous_post_link()

Link zum chronologisch vorherigen, also neueren oder vorherigen Beitrag.

next_image_link()
previous_image_link()

Link zum nächsten / vorherigen Bild im Beitrag.

get_author()

Beitragsautor.

the_author_link()

Link zur Autorenseite.

the_author_posts

Zur Übersichtsseite mit allen Beiträgen des Autors.

the_date()

Veröffentlichungsdatum.

the_modified_date()

Datum der letzten Bearbeitung.

the_meta()

Die Benutzerdefinierten Felder des Beitrags.

the_shortlink()

Kurzer Link zum Beitrag.

wp_list_comments()

Liste alle Kommentare auf.

in_the_loop()

Fragt ab ob der Code sich im Loop befindet.

is_home()

Wahr wenn die aktuelle Seite die Homepage ist.

is_admin()

Wahr wenn man sich momentan im Backend befindet (Administrations Menü)

is_single()

Wahr wenn die aktuelle Seite eine Beitrags Detailseite ist.

is_page()

Wahr wenn die aktuelle Webseite eine einzelne Seite ist.

is_page_template()

Wahr wenn die Seite ein bestimmtes Template verwendet. Angabe des Templates als lowercase Strings.

is_category()

Überprüft ob die Seite / Beitrag einer bestimmten Kategorie zugeordnet ist.

is_tag()

Prüft ob dem Inhalt ein Schlagwort zugewiesen ist.

is_author()

Prüft ob der Autor ein bestimmter Autor ist.

is_search()

Ist wahr wenn die Seite ein Suchergebnis war.

is_404()

Wahr wenn es sich um die Seite um eine Error 404 Seite handelt. 

has_excerpt()

Wahr wenn der Beitrag einen Auszug besitzt.

comments_link()

Link zum Kommentarabschnitt des Beitrags.

comment_id()

Interne ID eines Kommentars.

comment_author()

Kommentarautor.

comment_author_email_link()

Anklickbare E-Mail Adresse des Kommentarautors. 

comment_text()

Kommentartext.

comment_excerpt()

Maximal 20 Wörter des Kommentartextes als Auszug.

comment_date()

Kommentardatum.

get_avatar()

Zeigt den Avatar des Kommentar Autors an.

get_header()

Lädt das header.php Template.

get_footer() Lädt das footer.php Template.
get_sidebar() Lädt das sidebar.php Template.
get_search_from() Lädt das searchform.php Template.
comments_template() Lädt das Template-Fragment für den Kommentarabschnitt.