私は以下の形式を取り、投稿に挿入するために$ wpdbを使用したいと思います。クラス参照ページのINSERT行を読んでみましたが、何を参照すればよいのか本当にわかりません。 $ 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 } ?>
コードの成功部分では、投稿を表す配列を作成して、wp_insert_postをそのまま使用できます。
例
$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
あなたが指定しないどんなフィールドでもWordPressによって自動的に埋められるでしょう。
編集
カスタムフィールドについては、 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 );
出典: wp_insert_post