Code, PHP, Plugin, Tipps, WordPress

Gist via oEmbed in WordPress einbinden

WordPress hat seit geraumer Zeit die oEmbed Integration um einfach und unkompliziert Inhalte von anderen Siters und Services einzubinden. Besonders bekannt sind dabei diverse Video-Portale und seit der letzten WordPress Version Twitter. Wie so oft in WordPress kann man diese Möglichkeit nutzen und erweitern. In meinem Fall ging es darum, dass Inhalt von Github Gists einfach integriert werden können, einfach per URL in den Inhalt kopieren und gut. Dabei ist ein kleines Plugin entstanden, welches auf Github liegt und von dort genutzt werden kann und ggf. auch via Fork erweitert werden kann.
»» zum Plugin
Weiterlesen

Standard
Code, PHP, Plugin, Tipps, WordPress

Update-Prüfung für ausgewählte Plugins in WordPress Multisite unterbinden

Nichte selten werden für Kunden spezielle Plugins erstellt, die nicht im offiziellen Repository von WordPress liegen und trotzdem der Update-Prüfung unterliegen. Auch kann es dazu kommen, dass Plugins im Repository hinzukommen, die den gleichen Namen haben und damit ggf. versehentlich vom Anwender durch das Autoupdate überschrieben werden. Für eigene Plugins kann man dies in einer Single-Installation recht gut unterbinden – in einer Multisite Installation sieht dies anders aus. Ist das jeweilige Plugin in einem Blog des Netzwerkes aktiviert, dann wird die Prüfung durch das Plugin auch nur dort unterbunden, denn nur in dem Blog ist es inkludiert. In der Netzwerkverwaltung bleibt die Prüfung aktiv und ggf. werden dort Updates angeboten und überschreiben das Plugin.
Weiterlesen

Standard
Code, PHP, Plugin, Tipps, WordPress

Taxonomien im WordPress Media Manager nutzen

Mit WordPress 3.5 hat sich insbesondere im Medien- und Attachment Umfeld viel geändert. Es wurde nicht nur in der Oberfläche geschraubt sondern auch viel im Workflow und in den Standards geändert. So benutzt die Medienverwaltung seit 3.5 die Standard-UI der Post Types und kann daher ebenso einfach erweitert werden, wie das bereits von anderen Post-Typen bekannt ist. So lassen sich einfach Meta Boxen ergänzen und neue Daten und Inhalte speichern. In diesem Zusammenhang kann man daher auch recht einfach eine Kategorisierung, Taxonomie zu den Medien aktivieren. Dazu möchte ich zwei Lösungen vorstellen, die einfach genutzt werden können oder zum weiter entwickeln anregen.
Weiterlesen

Standard
WordPress

WordPress Dropins

WordPress und Plugins sind hinreichend bekannt und beliebt, bringen sie doch den Inhaber des Blogs in die Lage, das Blog an eigene Bedürfnisse recht einfach zu verändern und an eigenen Anforderungen anzupassen. Weniger bekannt sind Dropins.

WordPress erlaubt das Ersetzen diverse Funktionen unter anderem mit den sogenannten Dropins. Die Liste der Möglichkeiten ist nicht sonderlich groß und doch wenig dokumentiert. Insbesondere auf den Ersatz des Cache um Cache-Möglichkeiten des Servers zu nutzen, greife ich oft zurück. Dabei insbesondere APC und Memcache. Aber auch die Anpassung von Uploads, Permalinks und ähnliches sind ein typisches Scenario von Dropins.

Die Masse der Plugins müssen im WP Content Ordner abgelegt werden. Im Standard ist dies der Ordner wp-content oder er ist via Constant WP_CONTENT_DIR bzw. die URL in WP_CONTENT_URL definiert.
Beispiel:


// Custom content directory
define( 'WP_CONTENT_DIR',  dirname( __FILE__ ) . '/wp-content' );
define( 'WP_CONTENT_URL',  'http://' . $_SERVER['HTTP_HOST'] . '/wp-content' );

Dieses Vorgehen nutze ich beispielsweise in meiner Entwicklungsumgebung oder auch bei Kunden, da ich so bspw. auf Plugins via FTP getrennt zugreifen kann. Näheres und weitere Lösungen dazu findet man in meinem Starter auf Github.

Einzig Dropins, die mit dem Sprachschlüssel geladen werden, liegen nicht direkt in diesem Ordner, sondern im Standard in /wp-content/languages. Alternativ kann der Ordner via Konstante WP_LANG_DIR definiert werden.
Das Dropin für den deutschen Schlüssel folgt diesen Weg, nähres im Repo des Dropins zu finden.

Im Backend werden Dropins seit Version 3.0 von WordPress gelistet, allerdings nur die folgenden in der Tabelle und nicht das Dropin zum Sprachschlüssel. Ebenso kann mann es nicht via backend de-/aktivieren, was in einigen Fällen die Lösung via klassischem Plugin bevorzugt.

Im folgenden daher eine Tabelle alle Dropins, die ich kenne bzw. gefunden habe. Die möglichen Dropins werden über die Funktion _get_dropins() zurück gegeben.

Datei Type des Dropin Aktiv wenn Context
advanced-cache.php Erweiterter bzw. Alternativer Cache Konstante WP_CACHE ist TRUE Single & Multisite Installation
db.php Eigene Databank Klasse Immer Single & Multisite Installation
db-error.php Eigene Datenbank Fehler Meldung Beim DB Fehler Single & Multisite Installation
install.php Eigene Installationsroutine Bei der Installation Single & Multisite Installation
maintenance.php Eigene Wartungsmeldung Bei Updates, Wartung Single & Multisite Installation
object-cache.php Externer Object Cache Immer Single & Multisite Installation
sunrise.php Bevor die WP Multisite Installation lädt Wenn Konstante SUNRISE gesetzt Multisite Installation
blog-deleted.php Eigene Meldung, wenn ein Blog gelöscht wird Wenn ein Blog gelöscht wird Multisite Installation
blog-inactive.php Eigene Meldung, wenn ein Blog inaktiv gesetzt wird Wenn ein Blog inaktiv wird Multisite Installation
blog-suspended.php Eigene Meldung, wenn ein Blog eingestellt wird Wenn ein Blog als Archiv oder als Spam markiert wird Multisite Installation
$locale.php Funktionen bei aktivem Sprachschlüssel Wenn Sprachschlüssel in Konstante WP_LANG gesetzt Single & Multisite Installation
Standard
Code, PHP, Tipps, WordPress

WordPress bloginfo-Funktion beinflussen

Kleiner Tipp am Rande, da die Frage schon mehrfach auftauchte. Die get_bloginfo() Funktion gibt diverse Inhalte aus der Installation zurück, näheres beschreibt der Codex, inklusive aller Parameter. Nun passen die Inhalte nicht immer zur geforderten Aufgabe und auch diese Funktion besitzt einen Filter Hook, so dass man gezielt darauf eingehen kann und unter bestimmten Bedingungen anpassen kann.
Weiterlesen

Standard
Code, Entwicklung, PHP

Mantis Bug Tracker Plugins für BBCode und Markdown


Mantis ist einer meiner Favoriten beim Tracken von Bugs bzw. beim Issue Tracking, wenn es um eigenständig gehostete Lösungen geht; insbesondere bei Kunden in geschlossenen Netzen greife ich gern auf MantisBT zurück. In der Masse arbeiten dann Endanwender damit, weniger Leute, die ihre Inhalte formatieren wollen bzw. das nötige Wissen dazu mitbringen. In der Vergangenheit hat sich dies etwas verschoben und so war es ein Bedürfnis Code zu formatieren und wie gewohnt von anderen Plattformen aufzuhübschen. Dabei sind zwei kleine Plugins – BBCode und Markdown für MantisBT – entstanden, die ich hier gern nennen möchte und für alle, die ebenso auf Mantis setzen, als Hinweis hinterlege.
Weiterlesen

Standard
Code, PHP, Tipps, WordPress

WordPress Benutzerdefinierte Felder im Admin Bereich nutzen

Die benutzerdefinierten Felder von WordPress dienen wohl den meisten Anwendern eher dazu, um Zusatzdaten und Logiken im Frontend abzubilden. Diverse Anforderungen brauchen diese Werte auch im Backend um darauf zu reagieren. Mittels einem Filter sind diese Werte schnell verfügbar, was sie im Standard nur am Post sind und damit stehen sie nicht in der Übersicht der Artikel/Seiten zur Verfügung. Diese Werte sind aber schnell ergänzt.
Weiterlesen

Standard