在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 后台文章列表中,点击“移动至回收站”,即可看到效果。
源代码
暂无评论内容