我試圖發送AJAX數據到我的wordpress表,但我可以從我的PHP得到的是一個0
。它在管理方面。誰能幫我?WordPress插件ajax返回0
此外,所有這些代碼都在我的插件文件夾中的plugin-admin.php
文件中。
<?php
if (! defined('ABSPATH') || ! current_user_can('manage_options')) exit;
global $wpdb;
global $wp_version;
$results = $wpdb -> get_results(
"
SELECT ID, post_title, post_excerpt
FROM $wpdb->posts
WHERE post_type = 'post' and post_status NOT LIKE 'auto-draft'
AND post_title NOT LIKE 'Auto Draft'
AND post_status = 'publish'
ORDER BY post_title
"
);
add_action('wp_ajax_featured_submit_action', 'featured_submit_callback');
function featured_submit_callback(){
echo "hi";
wp_die();
}
?>
<div class="wrap">
<h2>Select Posts</h2>
<select id="selected-posts" multiple="multiple">
<?php
foreach ($results as $result){
?><option value="<?php echo $result->ID; ?>"> <?php echo $result->post_title; ?> </option> <?php
}
?>
</select>
<br>
<input type="submit" id="sposts-submit"></input>
</div>
<script>
jQuery(document).ready(function($) {
var spostsarray = new Array();
//Click button
$("#sposts-submit").click(function(){
var spostsarray = new Array();
$("#selected-posts").each(function(item){
spostsarray.push($(this).val());
});
console.log(spostsarray);
var data = {
"action": "featured_submit_action",
"posts": spostsarray
}
$.ajax({
url: "<?php echo admin_url('admin-ajax.php'); ?>",
type: "POST",
action: "featured_submit_action",
data: {"posts": spostsarray},
success: function(data){
console.log(data);
}
});
});
});
</script>
我凝聚了一點,但總的想法是,我可以抓住所有的最新文章,並且用戶可以選擇他們想要展示的,發送給PHP方法和編輯表它。
問題是與我的AJAX回調我只回到0
而不是從JavaScript發送的數據。
求助: 經過Rohil_PHPBeginner的一些幫助,我找到了答案。它沒有工作的原因是我正在從菜單頁執行代碼,此時添加一個鉤子爲時已晚。下面是我用來解決它的頁面:
AJAX in WP Plugin returns 0 always
你在瀏覽器中調試? –
是的,但我找不到什麼錯。 – lostAstronaut
你應該能夠看到請求和響應,看起來一切正常嗎?你有沒有在程序之外運行你的查詢? –