Inhaltsverzeichnis
WordPress
WordPress ist eine Blog-Software und einfaches CMS, geschrieben in PHP für MySQL-Datenbanken.
Installation
Die Installation von WordPress ist recht einfach, im folgenden werden daher nur fortgeschrittene Konfigurationen beschrieben, die nicht im jeden Fall notwendig sind.
Cronjob
WordPress kommt mit einem eigenen Werkzeug, das regelmäßige Aufgaben übernimmt, wie z. B. das Überprüfen ob geplante Beiträge veröffentlicht werden sollen: wp-cron. Dieses Werkzeug ist an die Funktionsweise von Cronjobs angelehnt, wird jedoch nur aufgerufen, wenn jemand die Website besucht. Bei größeren Websites (oder auch bei Webshops mit WooCommerce) und vielen Wartungsaufgaben kann dies die Website verlangsamen. Hierbei empfiehlt es sich nun, wp-cron auf echte Cronjobs umzustellen:
1. wp-cron in WordPress deaktivieren
Zuerst sollte der Aufruf von wp-cron durch Website-Besucher deaktiviert werden. Dies geschieht durch das einfügen folgender Zeile in die Datei wp-config.php
:
define( 'DISABLE_WP_CRON', 'true' );
2. Cronjob einrichten
Nun muss ein echter Cronjob auf dem Server eingerichtet werden, der die Datei wp-cron.php
aufruft. Dies geschieht je nach Webhoster über den Kunden-Administrationsbeich oder das Terminal.
Der Befehl zum Aufruf von wp-cron durch den Cronjob kann bspw. so aussehen:
php /path/to/htdocs/wordpress/wp-cron.php
Erweiterungen
Typische Erweiterungen
Dies sind Erweiterungen, die bei jeder WordPress-Installation zum Einsatz kommen können/sollten, egal welche weiteren Funktionen die Seite benötigt:
- AntiSpam Bee: Automatisches Erkennen und Entfernen von Spam-Kommentaren. Gute Alternative zum Standard-Plugin Akismet, das ohne Registrierung funktioniert und deutschen Datenschutzrichtlinien entspricht.
- Jetpack: Stellt viele hilfreiche Funktionen zur Verfügung, die oft gewünscht und sonst nur über viele zusätzliche Plugins hinzugefügt werden können. Nachteil: Es wird ein Account bei WordPress.com benötigt und die Seite muss mit dem Account verknüpft werden.
Weitere Erweiterungen
- Contact Form 7: Kontakt-Formular für WordPress
- .html On Pages: Fügt an URLs zu Seiten die Endung
.html
an - Kimili Flash Embed: Flash-Elemente einbinden
Social Media
- Social: Beim Veröffentlichen eines Beitrags automatisch einen Tweet und/oder einen Facebook-Status veröffentlichen, sowie Reaktionen bei Twitter und Facebook auslesen.
- WP To Twitter: Nachdem Veröffentlichen eines Beitrags automatisch einen Tweet veröffentlichen.
Statistik
Mehrsprachigkeit
- Loco Translate: Übersetzungen für Themes und Plugins erstellen
Entwicklung
- Advanced Custom Fields (ACE): Ermöglicht einfaches und komfortables Erstellen von beliebigen Eingabe-Feldern für Beiträge, Seiten, etc. im WordPress-Backend. Ein quasi Must-have bei selbst-entwickelten Seiten.
Themes
Empfehlenswerte Themes
Allgemein
- Standard-Themes (Twenty-Reihe)
Einzelne Themes
Boilerplats
Child Themes
Child Themes sind eine elegante Möglichkeit bestehende Themes zu verändern oder zu erweitern, ohne das Theme direkt zu bearbeiten. Dadurch können z.B. Themes problemlos aktualisiert werden, ohne das die eigenen Änderungen verloren gehen.
Vorgehensweise
- Child Theme nach Anleitung im WordPress Codex erstellen.
- Änderungen am CSS oder am Template des Themes vornehmen (siehe unten).
Bei CSS-Änderungen
Bei Änderungen am CSS können die Änderungen einfach direkt in die styles.css
des Child-Themes geschrieben werden.
Bei Template-Änderungen
- Bei Änderungen an Templates muss zunächst der entsprechende Template-Teil des Hauptthemes, z.B. die
header.php
oderfooter.php
, in den Ordner des Child-Themes kopiert werden. - In dem kopierten Template-Teil kann dann einfach die Änderung vorgenommen werden.
Die geänderten Template-Teile des Child-Themes werden dann anstelle der Template-Teile des Hauptthemes geladen.
Theme-Entwicklung
Seiten-Templates
Um ein eigenes Seiten-Template zu erstellen, muss im Template-Verzeichnis nur eine neue Datei erzeugt werden (z.B. foobar.php
) und am Anfang der Datei folgender Kommentar für WordPress stehen:
/*
* Template Name: FooBar
*/
Dann lässt sich beim Erstellen einer Seite in der Spalte rechts das Template „FooBar“ auswählen.
JavaScript auf jQuery-Basis einfügen
Um ein JavaScript, das auf dem Framework jQuery basiert, zu einem Template hinzuzufügen, sollte die Funktion wp_enqueue_script
verwendet werden:
<?php wp_enqueue_script( 'name-of-the-javascript', get_stylesheet_directory_uri() . '/app.js', array( 'jquery' ) ); ?>
Nach Best-Practice sollten alle JavaScripts in der functions.php
per wp_enqueue_script
im Theme hinzugefügt werden. Für Tests, Theme- oder Komponenten-Entwicklung funktioniert die Funktion allerdings auch außerhalb der functions.php
.
Text-Bereinigen, Zeilenumbrüche erhalten
$fake_newline = '--OMGKEEPTHISNEWLINE--'; # or some unique string $escaped_newlines = str_replace("\n", $fake_newline, $_POST['message']); $sanitized = sanitize_text_field($escaped_newlines);
Quelle: Stack Overflow: How to sanitize multi-line text from a textarea without losing line breaks?
Internationalisierung
Funktionen
- __( $text, $domain )
Text übersetzen ohne ihn direkt auszugeben - _e( $text, $domain )
Text übersetzen und direkt ausgeben
Entwicklung
Widgets
Plugins
Tutorials
Boilerplate
Posts
Funktionen
the_author_posts_link()
Link zur Autoren-Seite
Post-Status
Status von Posts bzw. Seiten:
Status | Erklärung |
---|---|
publish | Eine veröffentlichter Post |
pending | Ein zu moderierender/rezensierender Post |
draft | Ein Entwurf |
auto-draft | Ein automatisch gespeicherter, neuer Post (ohne Inhalt) |
future | Ein Post, der zu einem späteren Zeitpunkt veröffentlicht wird |
private | Ein nicht-öffentlicher/privater Post |
inherit | Eine automatisch gespeicherte Revision |
trash | Ein Post im Papierkorb |
Migration
Die Migration einer WordPress-Website funktioniert am erfahrungsgemäß am einfachsten über folgenden Weg:
- Sicherung der Dateien auf dem alten Server bzw. Test-Server
- Sicherung der Datenbank auf dem alten Server bzw. Test-Server als unkomprimierte SQL-Datei
Siehe: WordPress Codex: Backing Up Your Database: Using phpMyAdmin - Suchen- und Ersetzen der alten Adresse, bspw.
http://example.local
, durch die neue, z.B.http://www.example.com
, in einem Text-Editor - Upload der gesicherten Dateien auf den neuen Server
- Upload der geänderten SQL-Datenbank
- Ggf. Anpassen der Datei
wp-config.php
zur neuen Datenbank-Konfiguration
Die Website funktioniert i.d.R. ad-hoc auf dem neuen Server.
Bekannte Probleme
Verlust von Text-Widgets
Erstellte Text-Widgets werden aus bisher ungeklärten Gründen nicht mehr angezeigt.
Workaround: Die Text-Widgets müssen auf der neuen Seite neu erstellt werden.
Fehler beim Datenbank-Import: "#1273 – Unknown collation: ‘utf8mb4_unicode_ci’"
WordPress nutzt, wenn die MySQL-Datenbank aktuell genug ist, den neueren Zeichensatz („Collation“) utf8mb4_unicode_ci
, der allerdings bei älteren MySQL-Datenbanken nicht zur Verfügung steht.
Workaround: Alle Datenbank-Tabellen und -Felder mit der eingestellten Collation utf8mb4_unicode_ci
müssen umgestellt werden auf utf8_general_ci
.
Quelle: WordPress Support: SQL error when importing database