Archiv der Kategorie: Wordpress

WordPress 4.9.6 – Link zur Datenschutzerklärung automatisch ausgeben

Wer nicht immer von Hand die URL zur Datenschutzerklärung eingeben möchte, oder wer sicher gehen muss, dass in den eigenen Themes immer die richtige URL angegeben wird, der kann auf folgende Funktion zurückgreifen.

In Detail könnte der Abschnitt so aussehen:

 

Alle Preise in Woocommerce ändern – auf die smarte Art

Wer schon einmal nach dem Schlüsselwort price in einem Datenbankdump von Woocommerce und WordPress gesucht hat, weil er seine Artikelpreise gerne auf einen Schlag ändern möchte, der wird einfach nur verzweifeln.

Es gibt allein in wp_post_meta 12 Möglichkeiten, Preise einzugeben. Und das ist noch nicht einmal alles.

Annahme: Wir wollen unsere Preise einer Inflation von 2 Prozent anpassen. Wie geht man vor?

Tabelle wp_postmeta

Tabelle wp_options

Die letzte Zeile ist besonders wichtig, da Woocommerce  einen Transient-Cache nutzt, um Seiten schneller darstellen zu können. Indem man diesen Speicher auf einen Schlag löscht, wird er automatisch beim nächsten Aufruf eines Produktes neu generiert.

Eine simple API für WordPress, Teil 4

Wir wissen jetzt, wie wir mit Hilfe unserer kleinen API einen Artikel anlegen und wie wir ihn mit einem Bild versorgen. Nun fügen wir einige Metadaten hinzu. Dazu benötigen wird die Funktion „add_post_meta„. Diese verlangt folgende Parameter:

  • post_id – Die eindeutige Artikel-ID aus Teil 2
  • meta_key – Der Name des Metadaten-Feldes
  • meta_value – Der Wert des Metadaten-Feldes

Wir packen also wieder einen Befehlsaufruf für unseren Server zusammen:

Und natürlich müssen wir auch unseren Server wieder ein wenig ergänzen.

Diese 3 Zeilen erweitern unseren Server um die Fähigkeit, mit Hilfe der Funktion „add_post_meta“ Artikel mit beliebigen Metadaten zu versorgen.

Und so sieht dann das neue benutzerdefinierte Feld aus.

Zusammenfassung

Server

Client

 

Eine simple API für WordPress, Teil 3

Kommen wir nun zum wichtigen Thema: Wie füge ich dem Artikel ein Bild bei?

Auch das wird in vielen Beiträgen im Internet gerne angerissen, aber mal ein paar schnelle, praktikable Lösungen werden selten präsentiert. Dabei ist es nicht so schwer, wenn man weiß, was zu tun ist.

Der Ablauf

Im Grunde müssen folgende Schritte abgearbeitet werden:

  1. Wir erzeugen einen Artikel und merken uns die ID (siehe Teil 2)
  2. Wir laden ein Bild per FTP auf den WordPress-Server
  3. Wir verbinden Artikel und Bild mit Hilfe der Funktionen: wp_generate_attachment_metadatawp_insert_attachment und set_post_thumbnail

Damit das funktioniert, müssen wir unseren Server gleich zweimal bemühen: Beim Erzeugen des Artikels und beim Verbinden des Bildes mit ersterem.

Der Upload per FTP

Keine Angst, das ist per PHP einfacher, als man denkt.

Zunächst benötigen wir auf dem WordPress-Blog einen Zielordner. Den kann man per Konsole oder FTP anlegen:

Auf diesen Server werden die Bilder (oder was immer man später mit den Artikeln verknüpfen möchte: ZIP-File, E-Book, PDF etc.) zwischengespeichert. Man sollte darauf achten, dass die Dateinamen dabei immer einzigartig sind, denn sonst werden sie gnadenlos überschrieben. Erreichen kann man das z.B. durch eine Ergänzung mit einer Time-id und einer laufenden Nummer.

Wir erweitern den Client um einige Zeilen:

Damit wird die Datei „bild.jpg“ vom lokalen Verzeichnis „/var/upload/bilder/“ auf das entfernte Verzeichnis „/var/www/domain.tld/wp-content/uploads/maschine/“ des Servers „domain.tld“ kopiert. Wenn Sie nicht wissen, wie das entfernte Verzeichnis lautet, fragen Sie ihren Provider.

Bevor wir nun an den Client gehen, packen wir dessen Kernaufgabe in eine Funktion, damit wir sie mehrfach benützen können.

Diese Funktion sendet ein Array an unseren Server und gibt dessen Antwort wieder zurück.

Die Aufgaben des Servers werden jetzt erweitert. Er kann nicht nur Artikel anlegen, sondern auch Bilder verarbeiten. Das geschieht durch folgende Zeilen:

Zeile 1 ermittelt den Mime-Type der Datei (hier: „image/jpeg“), das Array mit den Meta-Daten (Titel, eindeutiger Bezeichner etc.) wird automatisch gefüllt. Natürlich können Sie den Titel des Bildes auch aus den eigenen Daten erzeugen.

Zeile 10 fügt dann das eben hochgeladene Bild der Mediendatenbank des Blogs hinzu. Von nun an finden Sie das Bild dort, aber es ist noch nicht mit einem Artikel verbunden. Das erledigen wir gleich.

Zeile 12 versorgt das Bild in der Mediendatenbank mit den soeben festgelegten Metadaten und legt die einzelnen Vorschaubilder in den verschiedenen Größen an, die in den Medien-Einstellungen von WordPress festgelegt sind.

Zeile 14 macht die Magie: Das Bild wird mit dem Artikel verbunden.

Zusammengefasst

Der Server

Der Client

Das war ja nicht so schwer, wenn man weiß, wie es geht – aber das gilt wohl für alles im Leben. Im nächsten Schritt lernen wir, unseren Artikel nachträglich mit Daten anzureichern.