WordPress如何快速删除列表文章,WordPress网站使用ajax高效快速删除文章

Wordpress3年前 (2022)发布 SUYEONE
1K 0 0

为了实现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(‘

‘ + postTitle + ‘ 已被移动到回收站

‘)
.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的安全最佳实践。

© 版权声明

相关文章

暂无评论

暂无评论...
☺一键登录开启个人书签等功能!