UPDATE: ОК, теперь пользовательские сообщения с сообщениями должным образом .. добавил post_type => «отпуск», чтобы сделать эту работу ... но теперь я получаю ошибку 404 при отправке. Есть идеи?Wordpress Display Custom Post Type Form Form на лицевой стороне
Я пытаюсь добавить внешнюю форму на любую страницу/сообщение в Wordpress, но эта форма не запускает и не сохраняет какие-либо данные. Он не покажет сообщение благодарности после отправки (но форма отлично отображает с помощью короткого кода [отпуск]). Сообщение не добавляется в мою настраиваемую область типа «отпуск» в панели мониторинга (которая работает нормально). Есть ли способ, я должен сказать, что я как-то вставляю персонализированный тип сообщения «отпуск»? Чего я никого не прошу?
// Add shortcode to front end for vacation input
add_shortcode('vacation', 'vacation_shortcode');
function vacation_shortcode() {
if($_POST['vacation']=="submit" && !empty($_POST['action'])) {
echo "Thanks for submitting your vacation request!";
}
if (isset ($_POST['title'])) {
$title = $_POST['title'];
} else {
echo 'Please add a description of your request!';
}
?><form method="post" name="vacation_form" action="" id="vacation_form" >
<input type="text" name="title" value="Title of vacation request" />
<input type="text" name="_simple_vacation_type" value="Reason for absence" />
<input type="hidden" name="vacation" value="submit" />
<input type="hidden" name="action" value="new_vacation" />
<input type="submit" value="Submit">
<?php wp_nonce_field('new_vacation'); ?>
</form>
<?php
}
function simple_vacation_add_post(){
if($_POST['vacation']=="submit" && !empty($_POST['action'])) {
$title = $_POST['title'];
$vacation_type = $_POST['_simple_vacation_type'];
//the array of arguments to be inserted with wp_insert_post
$new_post = array(
'post_title' => $title,
'post_type' =>'vacation',
'post_status' => 'publish'
);
//insert the the post into database by passing $new_post to wp_insert_post
$pid = wp_insert_post($new_post);
//we now use $pid (post id) to help add our post meta data
add_post_meta($pid, '_simple_vacation_type', $vacation_type, true);
}
}
add_action('init','simple_vacation_add_post');