Schlagwort: WordPress

Wie erstelle ich ein Child-Theme in WordPress?

WordPress Child-Themes sind eine prima Sache, um fertige Themes anzupassen und zu erweitern, ohne dass diese Änderungen bei einem Update des Parent-Themes verloren gehen.

Um ein Child-Theme anzulegen, wird im WordPress-Themes-Verzeichnis ein neuer Ordner mit dem Zusatz „-child“ angelegt. Wenn der Ordner des Parent-Themes „xyz“ heißt, wird also ein Ordner mit dem Namen „xyz-child“ angelegt.

In diesem Ordner muss es mindestens zwei Dateien geben:

  • stlye.css
  • functions.php

Wichtig ist zum einen der Header in der Datei style.css mit der Zeile „Template:“:

Und zum anderen das Einbinden der Stylesheets aus dem Parent-Theme mit dem anschließenden Einbinden der Stylesheets des Child-Themes:

Anschließemd muss das Child-Theme natürlich noch aktiviert werden.

Wie kann ich aus einem WordPress-Plugin heraus auf eine andere Datenbank zugreifen

Gelegentlich möchte man auf eine andere Datenbank zugreifen als auf die, auf der WordPress läuft.

Glücklicherweise kann man sehr leicht eine neue Instanz von wpdb anlegen:

$wpdb->insert funktioniert nicht ohne erkennbaren Grund

Die Insert-Funktion der WordPress-eigenen Datenbankklasse ist bekanntermaßen sehr nützlich.
Allerdings gibt es eine wenig dokumentierte Einschränkung, welche einen an den Rand der Verzweiflung treiben kann.

Sofern man nämlich bspw. an ein als VARCHAR definiertes Feld mit einem String über die $wpdb->insert-Funktion füllen möchte, darf dieser String nicht länger als sein, als in der MySQL-Tabelle definiert. Ansonsten tut WordPress nämlich einfach gar nichts; keine Fehlermeldung, keine last_query, niente!

Zu allgemein? Wenn ich ein Feld „plz“ mit VARCHAR(5) definiert habe und über $wpdb->insert „123456“ zu schreiben versuche, passiert einfach gar nichts.

Nun kann man natürlich danach schreien, dass man doch alle Daten vor dem Schreiben validieren muss, aber MySQL selbst hat sich da gar nicht so. MySQL schneidet den String einfach ab und gut ist. Ein Insert über $wpdb->query funktionert natürlich, da es ja nur ein Wrapper für eine MySQL-Abfrage ist.

Wie lassen sich in WordPress Medien aus der Mediathek in einem Plugin auswählen bzw. einfügen?

Einbinden der Skripte:

Ausschnitt aus einem tabellarischen Formular (PHP):

Passender JavaScript-Code (jQuery)

Das WordPress-Plugin Sucuri zeigt nach dem Einschalten zusätzlicher Scanner auf der Settings-Seite nur noch einen Serverfehler 500

Ja nach Konfiguration Eures Webservers laufen nicht alle Scanner von Sucuri problemlos durch. Das wäre nicht so tragisch, wenn man die jeweilige Scan-Engine einfach wieder über die Settings abschalten könnte.

Leider funktioniert das nicht immer, denn bereits beim Aufruf der Settings bekommt man einen 500er geworfen.

Um trotzdem an die Einstellungen über Settings zu gelangen, reicht es, an die URL „&no_scan=1“ (ohne Anführungszeichen) anzuhängen. Schon gibt es wieder Zugriff auf die Settings.