Die WordPress-Funktion wird zum programmgesteuerten Senden von Daten verwendet. Standardfelder, die eingereicht werden müssen, um den Inhalt, den Auszug, den Titel, das Datum und vieles mehr aufzunehmen.
Es gibt keine Dokumentation dafür, wie ein benutzerdefiniertes Feld eingereicht wird. Ich weiß, dass es mit der add_post_meta($post_id, $meta_key, $meta_value, $unique);
Funktion möglich ist.
Aber wie kann man das in die Standardfunktion aufnehmen wp_insert_post
?
<?php
$my_post = array(
'post_title' => $_SESSION['booking-form-title'],
'post_date' => $_SESSION['cal_startdate'],
'post_content' => 'This is my post.',
'post_status' => 'publish',
'post_type' => 'booking',
);
wp_insert_post( $my_post );
?>
quelle
public
Modifikator vor "function". Wenn Sie die Funktion selbst einbinden, ohne sie einer Klasse zuzuordnen, müssen Sie nicht hinzufügenpublic
Sie können einfach das 'add_post_meta' nach dem 'wp_insert_post' hinzufügen
quelle
Ich glaube nicht, dass Sie es mit wp_insert_post () verwenden können.
Der Grund dafür ist, wie WP die beiden Datentypen speichert. Posts werden in einer großen monolithischen Tabelle mit einem Dutzend verschiedener Spalten (wp_posts) gespeichert. Benutzerdefinierte Felder werden in einer einfacheren Tabelle mit vier Spalten (wp_postmeta) gespeichert, die hauptsächlich aus einem Metaschlüssel und einem Wert besteht, die einem Beitrag zugeordnet sind.
Folglich können Sie benutzerdefinierte Felder erst dann wirklich speichern, wenn Sie die Post-ID haben.
Versuche dies:
Dieser Codex-Beitrag hat geholfen - es ist ein bisschen das Gegenteil von dem, was Sie tun (dh das Löschen einer DB-Zeile nach dem Löschen): http://codex.wordpress.org/Plugin_API/Action_Reference/delete_post
quelle
Verwenden Sie
save_post
filter und rufenadd_post_meta
Sie dann Ihre Filterfunktion auf.quelle
save_post
action steht ganz am Ende der Funktion. Die ID und das Objekt des Posts wurden übergeben. Die Antwort ist ein akustisches Signal .