Wordpress Plugins - Basics

Aus Wikizone
Wechseln zu: Navigation, Suche

Links / Quellen

http://bueltge.de/wp-tutorial-wir-schreiben-ein-simples-wp-plugin-teil-0/211/

http://bueltge.de/wp-hinweise-fuer-das-schreiben-eines-wordpress-plugins/150/

http://codex.wordpress.org/Plugin_API

http://wphooks.flatearth.org/ (Erklärungen zu Wordpress Hooks)

Ein einfaches Plugin

Plugins landen in wp-content/plugins. Sie brauchen keinen eigenen Ordner aber sinnvoll ist dies.

Grundstruktur einer Plugin Datei

Am Anfang stehen Kommentarzeilen über die WP das Plugin erkennt. Die letzten 3 Zeilen sind nur für Plugins mit Installer notwendig.

<?php
/*
Plugin Name: hello world
Plugin URI: http://bueltge.de/
Description: hello world - wir schreiben ein einfaches WP-Plugin
Version: 1.0
Author: Frank Bueltge
Author URI: http://bueltge.de/
Update Server: http://bueltge.de/wp-content/download/wp/
Min WP Version: 1.5
Max WP Version: 2.0.4
*/
?>

Ein Filter Hook

// Ein Filter wird auf the_content angewandt (das ist der Inhalt von Beiträgen) 
//und die Funktion hello_world soll aufgerufen werden
add_filter('the_content', 'hello_world');

// Die Funktion wandelt den Inhalt in Kleinbuchstaben um.
function hello_world($content) {
	return strtolower($content);
}

Ein Action Hook

// JS wird in den Headerbereich eingefügt
function hello_world_head() {
	echo "<script type=\"text/javascript\">alert(\"hello world\");</script>\n";
}
// Dies erfolgt über den wp_head Hook
add_action('wp_head', 'hello_world_head');

Hooks in der WP API

Über die WP API können Daten übergeben werden. Es gibt:

  • Filter Hooks - nutzt das Plugin um Inhalte (meistens Text) zu finden und zu ändern.
  • Action Hooks - nutzt das Plugin um eigene Funktionen zu implementieren, die vom WP Core ausgelöst werden.
  • Hooks enthalten mindestens zwei Argumente. Zusätzlich kann noch ein Prioritätswert (Standard 10) und Argumente übergeben werden.
add_action ('Hook_Name', 'Funktion_Name', [Priorität], [Argumente]);
add_action('wp_head', 'hello_world_head', 1);

Ein Plugin mit Datenbank Zugriffen