La fonction WordPress est utilisée pour soumettre des données par programme. Champs standard à soumettre pour inclure le contenu, l'extrait, le titre, la date et bien d'autres.
Il n'y a aucune documentation pour savoir comment soumettre à un champ personnalisé. Je sais que c'est possible avec la add_post_meta($post_id, $meta_key, $meta_value, $unique);
fonction.
Mais comment l'inclure dans la wp_insert_post
fonction standard ?
<?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 );
?>
php
custom-field
post-meta
posts
Robin I Knight
la source
la source
public
modificateur devant "fonction". Si vous incluez la fonction elle-même sans la mettre dans une classe, vous n'avez pas besoin d'ajouterpublic
Vous pouvez simplement ajouter le 'add_post_meta' après le 'wp_insert_post'
la source
Je ne pense pas que vous puissiez l'utiliser avec wp_insert_post () ;.
La raison en est la façon dont WP stocke les deux types de données. Les messages sont stockés dans une grande table monolithique avec une douzaine de colonnes différentes (wp_posts); les champs personnalisés sont stockés dans une table à 4 colonnes plus simple (wp_postmeta) composée principalement d'une méta clé et d'une valeur, associée à une publication.
Par conséquent, vous ne pouvez pas vraiment stocker de champs personnalisés avant d'avoir l'ID de publication.
Essaye ça:
Ce message codex a aidé - c'est un peu le contraire de ce que vous faites (c'est-à-dire, supprimer une ligne de base de données après la suppression du message): http://codex.wordpress.org/Plugin_API/Action_Reference/delete_post
la source
Utilisez le
save_post
filtre, puis appelezadd_post_meta
votre fonction de filtre.la source
save_post
action @aendrew est à la toute fin de la fonction, elle a l'ID et l'objet du message transmis, la réponse est bonne.