Je veux prendre la forme suivante et utiliser $ wpdb pour l'insérer dans un message. J'ai essayé de lire les lignes INSERT de la page de référence de la classe, mais je ne sais pas vraiment ce qui devrait être référencé. Je ne sais pas comment indiquer au formulaire d'insérer les données dans un message à l'aide de $ wpdb?
<?php
if (isset($_POST['pickup-form']))
{
// Clean POST data
$demo_input = (isset($_POST['demo-input'])) ? trim((string) $_POST['demo-input']) : '';
// Validate POST data
if ('' === $demo_input)
{
$errors['demo_input'] = __('Demo field is required');
}
// No errors
if (empty($errors))
{
// Save POST data to database, send some e-mails, etc.
$success = TRUE;
}
}
?>
<?php if ( ! empty($success)) { ?>
<p>Thank you!</p>
<?php } else { ?>
<?php if ( ! empty($errors)) { ?>
<?php print_r($errors) ?>
<?php } ?>
<form method="post" action="">
<input type="hidden" name="pickup-form">
<input type="text" name="demo-input" value="<?php if (isset($demo_input)) { echo esc_attr($demo_input); } ?>">
<input type="submit">
</form>
<?php } ?>
Dans la partie succès de votre code, vous pouvez construire un tableau représentant une publication et utiliser wp_insert_post en tant que tel:
Exemple
$mypost = array(
'post_title' => 'My Title',
'post_type' => 'page'
//... add other fields according to your form
);
$mypost_id = wp_insert_post( $mypost ); //Returns new post id on success
Tout champ que vous ne spécifiez pas sera automatiquement renseigné par WordPress.
MODIFIER
Pour les champs personnalisés, voir add_post_meta :
$mypost_id = wp_insert_post( $mypost ); //SEE ABOVE
$meta_key = 'your-new-field-name';
$meta_value = 'your-form-value';
$unique = true; // or false
add_post_meta( $mypost_id, $meta_key, $value, $unique );
Source: wp_insert_post