Plugin, Tipps, WordPress

WordPress mehrsprachig nutzen – ein Lösungsvorschlag

Ja, es gibt WordPress schon lange und fast ebenso lange möchte man den Inhalt in verschiedenen Sprachen ausgeben und dem Leser den Inhalt entsprechend aufbereiten. Das Thema kann schnell vielschichtig und komplex werden, denn nicht nur das Darstellen von Inhalt in Form von Text in unterschiedlichen Sprachen ist ein Thema; es geht ebenfalls um die Meta Daten zum Inhalt, um Bilder, die je nach Sprache verschieden sein können und es geht um die Nutzung der Admin-Oberfläche in der bevorzugten Sprache. Damit ist nur ein Teil angedeckt und je nach Anforderungen (ein Bsp. bei StackExchange) wird dies schnell ein eigenes Projekt und WordPress ist nur ein „kleines“ Framework im Hintergrund. Es gibt schon jetzt eine Reihe von Plugins, die verschiedenen Ansätze fahren – von neuen Tabellen im System oder de Trennung von Content nach Sprache in einem Tabelleneintrag zum Post bis hin zu Ablage in den Metadaten des Artikels.

Alle diese Lösungen haben ihre Grenzen, sind unflexibel und man begibt sich in eine Abhängigkeit, die man nur schwer wieder los wird und mit jedem Update von WordPress bekommt man es mit der Angst oder Minimum einem recht großen Aufwand im Testen zu tun. Darum möchte ich eine Lösung vorstellen, die wir im Team Inpsyde vielfach bei Kunden einsetzen und die ihre Stärke in der Flexibilität hat, in der Erweiterbarkeit und in der Eigenschaft, den WordPress Standard zu nutzen und nicht zu verbiegen. Ein Abschalten ist jederzeit möglich; das System bleibt in seinem Zustand.
Weiterlesen

Standard
Code, Entwicklung, PHP, Tipps, WordPress

Optionen aus WordPress an JavaScripts übergeben #1

Auch in WordPress bleibt man nicht konstant in der PHP-Welt und so müssen Einstellungen, Daten aus der Datenbank an Scripte übergeben werden. In vielen Plugins findet man Lösungen in dem die wp-load.php geladen wird und damit der Zugriff auf alle Funktionen von WordPress. Vor geraumer Zeit hat Otto (Samuel Wood) auf diesen Umstand schon aufmerksam gemacht und der Artikel zeigt Lösungsansätze. Noch immer kommen dazu Fragen auf und noch immer erscheinen Plugins, die die wp-load.php genau auf Grund solcher Probleme laden.

Eine ähnliche Problematik stellt sich, wenn man den Source der Scripte nicht einfach in den Footer-Bereich von WordPress schreibt, sondern sauber in eine Datei auslagert und via wp_enqueue_script() inkludiert. Nur so kann WordPress diese Scripte mit verwalten, packen und optimiert ausliefern. Daher möchte ich in zwie Beispielen aufzeigen, wie man Daten von PHP an JS übergibt.
Weiterlesen

Standard
Code, PHP, Tipps, WordPress

WordPress, WPCron und die richtige Zeit

WordPress bietet eine Pseudo-Cronjob-Funktionalität, welche es dem Entwickler erlaubt zeitgesteuerte Events auszuführen. Zum Beispiel funktioniert die komplette Update-Notification darüber. In diesen sogenannten Scheduled Events kann man auch selbst eigene Jobs definieren. Dabei sollte man aber auf eine wichtige Sache achten: Die Zeit.
Weiterlesen

Standard
Code, PHP, Tipps, WordPress

XML zu Array mit PHP

Im Bezug auf das Importieren von Daten wird nicht selten auf XML gesetzt und im Anschluss muss ein Array an WordPress übergeben werden, welches in die Datenbank übergibt. Im Umfeld von Optionen in WordPress ist das gern genutzt.
Um nach dem Parsen von XML ein Array in PHP zu bekommen, findet man immer wieder diverse Threads und Fragen. Im folgenden daher ein einfache und schnelle Lösung, die seit PHP 5 wunderbar funktioniert.
Weiterlesen

Standard
Code, PHP, Tipps, WordPress

Einstellungen setzen bei WordPress Multisite

Die Nutzung von WordPress für diverse Blogs im Netzwerk ist sinnvoll, kann diverse Schritte vereinfachen und wird immer beliebter. Sei es um klassische Scenarios des Bloghosting durchzuführen oder mehrsprachige Landschaften zu erstellen bis hin zu anders getrimmten Ideen. Daher ist es auch für Pluginentwickler wichtig, die Funktionen zu nutzen und eigene Plugins dafür zu erweitern oder speziell zu entwicklen.

Vielen ist gleich, aber nicht alles und in diesem kleinen Beitrag möchte ich kurz darstellen, wie man beim Aktivieren eines Plugins gesetzte Einstellungen in der Datenbank absetzt. Weiterlesen

Standard
Code, Tipps, WordPress

Scripte von WordPress debuggen

WordPress kann sich komfortabel um das verwalten von Scripten und Stylesheets kümmern, Vorraussetzung ist die Nutzung der Möglichkeiten rund um wp_enqueue_script() und wp_enqueue_style(). Will man sich um die darin übergeben Dateien kümmern, so kann eine kleine Funktion helfen und die integrierten Scripte und Styles zurück geben.
Weiterlesen

Standard
Code, PHP, WordPress

unserialize() Error at offset… Einige Ansätze

Nicht immer ist das Problem offensichtlich und dazu gehört eine Fehlerausgabe im Bezug auf die Funktion unserialize(). In diesem Umfeld kommt es auf Grund unsauberer Daten im übergebenen Wert ab und an zu Problemen. Schaut man sich im Netz dazu um, findet man unzählige Hilfesuche und wenige Antworten, da meist das Problem in Quelle liegt, im Wert der übergeben wird. Aber nicht immer hat man darauf Einfluss, insbesondere bei Debugginghelfern kommen da unterschiedliche Inhalte.

Um einigen Hilfesuchenden zu helfen, hier einige Lösungsvorschläge, die man abarbeiten kann. Einige sind nur im Zusammenhang mit WordPress zu nutzen, da die Funktion aus dem Core kommt. Ähnliche Sachen gibt es natürlich auch ohne WP.
Weiterlesen

Standard
Code, Tipps, WordPress

WordPress Plugins automatisch aktivieren

WordPress speichert die aktiven Plugins in der Datenbank, Tabelle options, Feld activate_plugins; damit ist es ein leichtes diesen Wert zu verändern und so kann man sauber diverse Plugins von WordPress aktivieren lassen; sei es als Plugin-Lösung nach dem Einrichten einer neuen Installation oder weil eigene Plugins einge andere Plugins brauchen.
Weiterlesen

Standard
Tipps, WordPress

Kleine Erweiterung an der WordPress Mediathek

Kleine Veränderungen können manchmal viel bewirken. Wer die Mediathek viel nutzt und von dort Bilder in den Beiträgen verwendet, dem wird der folgenden kleine Link in der Mediathek sicher helfen. Damit können Bilder einfach wiederverwendet werden. Es wird damit das Bild mit dem Post verknüpft, so dass man über Funktionen direkt an das verknüpfte Bild gelangt. Hinweise dazu gibt es beispielsweise in diesem Beitrag.
Weiterlesen

Standard
Code, CSS, xHTML, JS, PHP, Tipps, WordPress

Kategorie- und Archiv-Dropdowns mit unobtrusive JavaScript

Eine gute Website funktioniert, wenn ein Benutzer mit deaktiviertem JavaScript vorbeikommt, genau so gut wie mit aktiviertem Scripting. Man trennt die JS-Schicht der Website sauber von allem anderen (und verzeichtet zum Beispiel auf onclick-Handler im HTML) und legt seine Scripts so an, dass nur die schon vorhandene Funktionalität der Seite verbessern und umformen. So kommen die Besucher sowohl mit als auch ohne JS an ihr Ziel, wenn der Weg ohne Scripting vielleicht etwas mühsamer oder weniger schön ausfällt. Diese Herangehensweise an Scripting auf Websites nennt sich Unobtrusive JavaScript und warum das eine Gute Sache ist, erklärt Jenn Lukas in diesem Talk von der JSConf 2010. Neben all den guten Gründen ist das wichtigste Argument für unobtrusive JavaScript, dass es bei entsprechender Planung so einfach umzusetzen ist, dass es grundlos verschenktes Potenzial wäre wenn man darauf verzichten würde. Problematisch kann es allein dann werden, wenn das einem das für die Website verwendete CMS einem einen Strich durch die Rechnung macht – womit wir beim Thema WordPress wären.

Gelegentlich möchte man in seiner Blog-Sidebar Dropdowns-Menüs (select-Elemente) zur Navigation der Kategorien und des Archivs unterbringen und der WordPress-Codex bietet in den Dokumentationen auch entsprechende Lösungen für Kategorien und Archiv an, die allerdings beide nur mit aktiviertem JavaScript funktionieren. In beiden Fällen wird die URL der Ziel-Seite im value-Wert der im Dropdown-Menü verbauten option-Elemente gespeichert und sobald man einen Eintrag auswählt, wird man via JavaScript auf eben jene URL weitergeleitet. Die fast gleiche Funktionalität ließe sich aber auch ganz ohne Scripts erreichen:
Weiterlesen

Standard