今天wpmee小编分享使用ajax在WordPress后台删除文章方法,直接上代码,将下面的代码添加到当前启用的WordPress主题的functions.php里面。
// 后台 文章列表 ajax删除文章
add_action( 'admin_footer', 'dahuzi_custom_internal_javascript' );
function dahuzi_custom_internal_javascript(){
echo "
jQuery(function($){
$('body.post-type-post .row-actions .trash a').click(function( event ){
event.preventDefault();
var url = new URL( $(this).attr('href') ),
nonce = url.searchParams.get('_wpnonce'), // MUST for security checks
row = $(this).closest('tr'),
postID = url.searchParams.get('post'),
postTitle = row.find('.row-title').text();
row.css('background-color','#ffafaf').fadeOut(300, function(){
row.removeAttr('style').html('
' + postTitle + ' 已被移动到回收站').show();});
$.ajax({
method:'POST',
url: ajaxurl,
data: {
'action' : 'moveposttotrash',
'post_id' : postID,
'_wpnonce' : nonce
}
});
});
});
";
}
add_action('wp_ajax_moveposttotrash', function(){
check_ajax_referer( 'trash-post_' . $_POST['post_id'] );
wp_trash_post( $_POST['post_id'] );
die();
});
如果你想将这个功能用于自定义文章分类,将代码中的 .post-type-post,替换成 .post-type-{post-type-name}
这里我使用的URL API在较旧的浏览器中不起作用,对我来说无所谓,因为我使用的是Chrome浏览器,所以可以。你可以在此处检查浏览器的兼容性。