WordPress后台文章使用ajax删除
6个月前 (09-05)
实现效果如下图:

直接上代码,将下面的代码添加到当前启用的WordPress主题的functions.php里面。
- // 后台 文章列表 ajax删除文章
- add_action( 'admin_footer', 'dahuzi_custom_internal_javascript' );
- function dahuzi_custom_internal_javascript(){
- echo "<script>
- 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('<td colspan=\'5\' style=\'background:#fff;border-left:1px solid #FF5722;border-left-width:4px;color:#555\'><strong>' + postTitle + '</strong> 已被移动到回收站</td>').show();
- });
- $.ajax({
- method:'POST',
- url: ajaxurl,
- data: {
- 'action' : 'moveposttotrash',
- 'post_id' : postID,
- '_wpnonce' : nonce
- }
- });
- });
- });
- </script>";
- }
- 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在较旧的浏览器中不起作用
代码不会刷新文章计数(全部,已发布,回收站…)