采用AJAX方式将WordPress文章移到回收站中

WordPress 后台文章列表中,可以单独将某篇文章移动到回收站中,但移动后页面会刷新一次,可通过下面的代码…

WordPress 后台文章列表中,可以单独将某篇文章移动到回收站中,但移动后页面会刷新一次,可通过下面的代码实现无刷新将文章移动到回收站中。

第一步

在当前主题目录新建一个 movepost.js 文件,将下面 JS 代码复制进去。

  1.     jQuery(function($){
  2.     	$('body.post-type-post .row-actions .trash a').click(function( event ){
  3.  
  4.     		event.preventDefault();
  5.  
  6.     		var url = new URL( $(this).attr('href') ),
  7.     		    nonce = url.searchParams.get('_wpnonce'), // MUST for security checks
  8.     		    row = $(this).closest('tr'),
  9.     		    postID = url.searchParams.get('post'),
  10.     		    postTitle = row.find('.row-title').text();
  11.  
  12.  
  13.     		row.css('background-color','#ffafaf').fadeOut(300, function(){
  14.     			row.removeAttr('style').HTML('<td colspan="5">文章 <strong>' + postTitle + '</strong> 已移至回收站</td>').show();
  15.     		});
  16.  
  17.     		$.ajax({
  18.     			method:'POST',
  19.     			url: ajaxurl,
  20.     			data: {
  21.     				'action' : 'moveposttotrash',
  22.     				'post_id' : postID,
  23.     				'_wpnonce' : nonce
  24.     			}
  25.     		});
  26.  
  27.     	});
  28.     });

如果是在自定义文章类型中使用,修改其中的 post-type-post 为 post-type-文章类型名称。

第二步

将下面代码添加到当前主题函数模板 functions.php 中:

  1.     add_action( 'admin_head', 'moveposttotrash_script' );
  2.     function moveposttotrash_script() {
  3.     	wp_enqueue_script( 'movepost', get_stylesheet_directory_uri() . '/movepost.js', array( 'jquery' ) );
  4.  
  5.     }
  6.  
  7.     add_action('wp_ajax_moveposttotrash', function() {
  8.     	check_ajax_referer( 'trash-post_' . $_POST['post_id'] );
  9.     	wp_trash_post( $_POST['post_id'] );
  10.     	die();
  11.     });

之后,在 WordPress 后台文章列表中,点击“移动至回收站”,即可看到效果。

类别:WordPress教程

本文收集自互联网,转载请注明来源。
如有侵权,请联系 wper_net@163.com 删除。

评论 (0)COMMENT

登录 账号发表你的看法,还没有账号?立即免费 注册