save_post WordPress Hook

Der WordPress Hook save_post wird ausgelöst wenn irgend ein Post gespeichert wird. Darunter fallen die Beiträge (post) , Seiten (page) und alle von euch erstellten Custom Post Types.

Einsatzbereich:

Sobald Ihr weitere Informationen zu einem Post oder eurem Custom Post Type speichern möchtet ist dies genau der richtige Weg. Erweiterungen über Metaboxen können so gespeichert werden, Ihr entscheidet ob in der Tabelle postmeta oder in einer Tabelle eurer Wahl.

Definition

Quellcode:

Der Quellcode ist unabhängig ob nun Plugin oder Functions.php

Erklärung

In Zeile #1 definieren wir den Hook auf den wir uns anhängen wollen und geben die Funktion an welche dazu aufgerufen werden soll. Als Funktionsparameter erhalten wir die PostId.

Zeile 6-8: WordPress speichert regelmäßig unsere Eingaben des Editors automatisch. Wenn diese Autosave Funktion ausgeführt wird brechen wir unsere eigene Funktion ab.

Zeile 13-14: Diese Zeile sorgt für Sicherheit in unserer Funktion. Es wird ein spezielle noncefield abgefragt und erst wenn dieses den richtigen Wert beinhaltet kann unsere Funktion weiter ausgeführt werden.

Zeile 17 – 24: Der save_post Hook wird sehr oft ausgeführt. Für jeden Speichern eines Posts eben. Möchten wir nur für einen speziellen Typ unsere Funktion ausführen können wir diesen bestimmen. In diesem Fall nur für einen Beitrag die Methode ausgeführt werden. Zusätzliche fragen wir noch ab ob der momentane Benutzer das Recht hat diesen Beitrag zu bearbeiten.

Zeile 27: Dies ist nur ein Beispiel um eine WordPress Optionen zu speichern.
Zeile 29: Dies ist nur ein Beispiel um einen Wert dem Post über die Postmeta zuzuordnen.