为了实现WordPress文章列表的快速AJAX删除功能,你可以将以下代码添加到你的当前主题的functions.php文件中。此代码会监听文章列表中的删除链接,并通过AJAX处理删除操作,使得页面无需刷新即可完成删除。请注意,你需要将`post-type-post`替换为你需要自定义的帖子类型,例如`post-type-page`或`post-type-custom_post_type`。
“`php
// 在functions.php文件中添加以下代码
// 添加后台JavaScript代码
add_Action( ‘admin_footer’, ‘custom_ajax_trash_post’ );
function custom_ajax_trash_post() {
echo ‘
jQuery(function($){
$(“body.post-type-post .row-actions .trash a”).on(“click”, function(event) {
event.preventDefault();
var url = new URL(this.href),
nonce = url.searchParams.get(“_wpnonce”),
row = $(this).closest(“tr”),
postID = url.searchParams.get(“post”),
postTitle = row.find(“.row-title”).text();
row.fadeOut(300, function() {
$(this)
.rEMOveAttr(“style”)
.htML(‘
‘)
.show();
});
$.ajax({
type: “POST”,
url: ajaxurl,
Data: {
action: “move_to_trash”,
post_id: postID,
_wpnonce: nonce
}
});
});
});
‘;
}
// 处理AJAX请求以将文章移至回收站
add_action(‘wp_ajax_move_to_trash’, function() {
check_ajax_referer( ‘trash-post_’ . $_POST[‘post_id’], ‘nonce’ );
wp_trash_post( $_POST[‘post_id’] );
exit();
});
“`
这段代码首先在文章列表页面底部添加了一个JavaScript函数,用于监听点击删除链接的事件。当链接被点击时,它阻止默认的页面跳转行为,然后使用AJAX向服务器发送一个POST请求,将文章移动到回收站。同时,它还会更新页面上的行内容,显示文章已被删除的提示。
在服务器端,我们添加了一个`wp_ajax_move_to_trash`钩子,当收到AJAX请求时,该钩子会检查nonce值以确保安全,然后调用`wp_trash_post`函数来移动文章。注意,这里的nonce名称已调整为`trash-post_`加上文章ID,以符合WordPress的安全最佳实践。