Добрый день! Уже который день не могу понять, почему не работает.
На главной странице сайта создал форму добавления поста:
<form action="#" method="post" enctype="multipart/form-data">
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 ">
<fieldset>
<input type="text" class="form-control" name="titleObject" id="titleQ" placeholder="Наименование" autocomplete="off">
</fieldset>
</div>
<button type="button" id="custom_button" class="btn btn-primary col-12">Добавить</button>
</form>
В function.php поместил такой код:
if(!function_exists('my_custom_script')):
function my_custom_script(){
wp_enqueue_script( 'jquery' );
wp_enqueue_script('customajax', get_stylesheet_directory_uri() . '/js/custom.js', array(), 1.0,false
);
wp_localize_script('customajax', 'ajjax', array(
'url' => admin_url( 'admin-ajax.php' ),));
}
endif;
add_action('wp_enqueue_scripts','my_custom_script');
if(!function_exists('ret')) {
function ret()
{
$asd = $_POST["titleObject"];
$my_post = array(
'post_title' => $asd,
'post_content' => 'test',
'post_type' => 'post',
'post_status' => 'publish',
'post_author' => '1'
);
$post_ID = wp_insert_post( $my_post );
echo $post_ID;
wp_die();
};
}
if( defined('DOING_AJAX') ) {
add_action('wp_ajax_qwas', 'ret');
add_action('wp_ajax_nopriv_qwas', 'ret');
}
В файл js:
jQuery(function(jQuery) {
jQuery('#custom_button').click(function () {
var titleObject = jQuery("#titleQ").val();
jQuery.ajax({
type: "POST",
data: {
action: 'qwas',
titleObject: titleObject,
},
url: ajjax.url,
cache: false,
success: function ( response ) {
console.log(response);
}
});
});
});
Когда ввожу данное в поле и нажимаю button в консоли вижу сообщение которое выводит id поста, но в адмике и базе данных пост сразу не создается, а только после обновления данных страниц. Но ведь должно же с помощью ajax создавать посты без перезагрузки. Не могу понять в чем причина. Буду благодарен за помощь.