我的平台存储用户创建的多个自定义帖子。现在我正试图创建一个删除按钮,从那里他们可以删除自己的帖子。 AJAX 请求成功,但我得到“错误:无法删除帖子”
这是简码功能
function wpso_delete_my_posts()
{
$current_user = get_current_user_id();
$author_id = get_post_field('post_author', $post->ID);
ob_start();
if ($author_id == $current_user || current_user_can('administrator')) {
echo '<a class="delete-post" id="send-to-draft-button" rel="nofollow" href="#">Delete Listing</a>';
}
return ob_get_clean();
}
add_shortcode('delete_me', 'wpso_delete_my_posts');
这是 AJAX 函数
add_action('wp_ajax_send_post_to_draft', 'send_post_to_draft_callback');
function send_post_to_draft_callback() {
$post_id = get_the_ID();
wp_delete_post($post_id, true);
die();
}
这是 AJAX 请求
$('#send-to-draft-button').click(function(e) {
e.preventDefault();
$.ajax({
url: bbjs.ajaxurl, // Use the WordPress AJAX URL
type: 'POST',
data: {
action: 'send_post_to_draft', // Name of the server-side function to call
},
success: function(response) {
if (response.success) {
alert('Post has been deleted');
} else {
alert('Error: Unable to delete the post');
}
},
error: function() {
alert('Error: AJAX request failed.');
}
});
});
1条答案
按热度按时间vddsk6oq1#
我在最后解决了这个问题,以防有人需要...
在我的短代码函数中,我添加了ID数据属性来引用当前的文章ID
在 AJAX 函数中修改了获取post ID的方法。现在函数看起来像这样。
在 AJAX 请求中,我只是声明了postId并将其添加到数据中。新功能: