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

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

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

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

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\">文章 <strong>\' + postTitle + \'</strong> 已移至回收站</td>\').show();
		});

		$.ajax({
			method:\'POST\',
			url: ajaxurl,
			data: {
				\'action\' : \'moveposttotrash\',
				\'post_id\' : postID,
				\'_wpnonce\' : nonce
			}
		});

	});
});

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

因代码中有中文,保存文件时需要将编码改为:UTF-8 无BOM(无签名)。

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

add_action( \'admin_head\', \'moveposttotrash_script\' );
function moveposttotrash_script() {
	wp_enqueue_script( \'movepost\', get_stylesheet_directory_uri() . \'/movepost.js\', array( \'jquery\' ) );

}

add_action(\'wp_ajax_moveposttotrash\', function() {
	check_ajax_referer( \'trash-post_\' . $_POST[\'post_id\'] );
	wp_trash_post( $_POST[\'post_id\'] );
	die();
});

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

源代码

    © 版权声明
    THE END
    喜欢就支持一下吧
    点赞0 分享
    评论 抢沙发

    请登录后发表评论

      暂无评论内容