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

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

第一步

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

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

如果是在自定义文章类型中使用,修改其中的 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. add_action('wp_ajax_moveposttotrash', function() {
  6. check_ajax_referer( 'trash-post_' . $_POST['post_id'] );
  7. wp_trash_post( $_POST['post_id'] );
  8. die();
  9. });

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

给TA打赏
共{{data.count}}人
人已打赏
WordPress教程

让 WordPress 页面支持添加分类及标签

2022-4-23 17:35:10

WordPress教程

WordPress 网站如何设置置顶文章并调用

2022-4-24 17:09:16

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索