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, CSS, xHTML, JS, Tipps, WordPress

Responsive Table und WordPress

Responsive hier und da – das Thema hat gewicht bekommen und endlich ist es populärer als in den Diskussionen von Entwicklern, die dem Thema nahe stehen. Responsive ist für mich mehr als das Nutzen einiger Mediaqueries auf bestimmte Werte und das Anpassen der Optik. Aber darum soll es hier nicht gehen, dazu gibt es ausreichend Beiträge auf anderen Sites und ein ausführliches Buch „Responsive Webdesign: Reaktionsfähige Websites gestalten und umsetzen“ in deutscher Sprache von Christoph Zillgens.

Für mich war in letzter Zeit ein Thema in diesem Umfeld etwas aktueller, denn ich habe diverse WordPress Instanzen laufen, die zu Dokumentationszwecken von Entwicklungen dienen. Dabei erstellen die Kunden eine ganze Reihe von tabellarischen Daten und wenn diese in Meetings und Vorstellungen via Beamer dargestellt werden, dann ging die Auflösng rapide nach untern und die 1900 Pixel-Bildschirme stehen nicht mehr zur Verfügung. Daher lag es nahe, dass Tabellen mit einer Lösung ausgestattet werden, die trotzdem für eine sinnvolle Darstellung sorgt.
Weiterlesen

Standard
Code, PHP, Tipps, WordPress

WordPress Theme Customizer Custom Controls

Puh, schwerer Titel – aber er trifft es und es ist schwer die Möglichkeit in deutscher Sprache zu nennen ohne die gleiche Unsicherheit zu erzeugen. Der englische Begriff ist wenigstens auf die Begriffe von WordrPress zurück zu führen. Zum Verständnis daher einige Worte, die erklären, was ich sagen will und worum es geht.

Der Customizer ist eine recht junge Möglichkeit von WordPress um Themes mit Optionen zu versorgen. Dabei ist das Visuelle besonders im Vordergrund, man gestaltet die Optionen direkt im Frontend am Theme, spielt und speichert die Einstellungen. Einige Zeilen dazu habe ich in einem älteren Artikel hinterlegt und ebenso die Slides zum Thema hinterlegt.

Nun soll es in diesem Beitrag gehen, wie man eigene Klassen erstellt, die die Controls erweitern, da nicht alle Felder und Wünsche im Core hinterlegt sind. Dabei kann man auf bestehende Lösungen der Community zugreifen oder eigenen Klassen erstellen. Im ersten Schritt daher einen kurze Einführung für neue Klassen und im Anschluss der Hinweis zu mir bekannten Klassen. Bitte erweitert in dem ihr mir über die Kommentarfunktion Links nennt.
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
Entwicklung, Themes, Tipps, WordPress

WordPress Customizer

Der WordPress Customizer – Theme-Einstellungen im Frontend einfach realisieren mit Hilfe des Standards.
Der Customizer ist seit WordPress Version 3.4 im Core und soll Theme Entwickler unterstützen, am Theme diverse Optionen zu ermöglichen. Dabei steht diese Möglichkeit im Standard zur Verfügung, wird von diversen Modulen wie Background und Header-Image unterstützt und kann nach Bedarf erweitert werden.

Das Thema Anpassen des Themes im Frontend von WordPress ist nicht erst seit WordPress 3.4 eine Anforderung, diese Ideen und diverse Lösungen gibt seit ewigen Zeiten. Wobei hier klar die Trennung zu ziehen ist, wer ist die Zielgruppe und wie flexibel möchte man diese Anpassungen gestalten.

Im folgenden kleinem Video zeige ich kurz, wie das ganze aussehen kann. Dabei habe ich diverse Felder eingebaut, die üblicherweise Verwendung finden und diverse Fragen im Coding ergeben. Ebenso ist eine eigene Klasse als Erweiterung des Customizers eingeflossen, zur Nutzung von textareas, um auch dazu ein Beispiel zu sehen.

Zum WordPress Camp in Berlin am letzten Wochenende habe ich dazu auf Anfrage eine Session gehalten und versucht das Thema etwas näher zu bringen. Gefühlt – das Thema scheint recht neu, nur wenige setzen sich damit auseinander. Vermutlich auch dem geschuldet, dass es bestehenden Lösungen gibt und es nun darauf ankommt, ob sich der Standard durchsetzen wird. Vor- und Nachteile gibt es in jedem Umfeld, auch diese habe ich etwas beleuchtet.

Darum verweise ich hier auch auf die Slides zur Session „The Customizer„, die mir in erster Linie als Basis für die linke Gehirnhälfte dienen und mein gesprochenes Wort untermauern sollen.

Insofern könnten Fragen entstehen oder offen bleiben. Ich möchte dabei aber ermuntern, schaut euch den Code im Referenzprojekt dazu an und ich denke, dass man damit mehr Lernen kann. Sollte es Fehler, Hinweise und Ideen geben, so nutzt sehr gerne die vielfältigen Möglichkeiten von Github, sei es via Issue oder einem Fork und diversen Änderungen im Code.

Trotzdem können hier gern in den Kommentaren Hinweise und Wünsche hinterlegt werden, so dass ich auf diverse Punkte eingehe und in separate Artikel ablege. Zu Custom Functions könnte ich mir dies bspw. vorstellen; dazu sollten aber die Grundlagen der Nutzung des Customizer bekannt sein und ggf. will man dazu auch mehr wissen.

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