You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在MediaWiki中批量删除无页面贡献的用户

在MediaWiki中批量删除无贡献用户的方案

目前MediaWiki没有官方或专门的扩展直接实现批量删除从未贡献用户的功能,但你可以通过以下几种无需直接修改数据库的方式完成:

  • 使用自带的维护脚本

    1. 先筛选出无贡献用户:可以通过维护脚本php maintenance/sql.php执行查询语句(仅查询,不修改)来导出符合条件的用户列表,比如查找编辑次数为0且没有上传过文件、没有在讨论页发帖的用户:
      SELECT user_name FROM user 
      LEFT JOIN edit ON user_id = edit_user 
      LEFT JOIN image ON user_id = img_user 
      LEFT JOIN page ON user_id = page_user AND page_namespace = 1 -- 讨论页命名空间
      WHERE edit_id IS NULL AND img_id IS NULL AND page_id IS NULL;
      
    2. 将查询结果整理成每行一个用户名的文本文件,然后用deleteUsers.php脚本批量删除:
      php maintenance/deleteUsers.php --batch < 无贡献用户列表.txt
      

    注意:执行脚本需要服务器端权限,且操作前务必备份数据库。

  • 基于MediaWiki API开发简易脚本
    可以写个简单的脚本(比如Python或PHP),通过MediaWiki API完成两步操作:

    1. 调用list=users接口获取所有用户列表;
    2. 对每个用户调用action=query&list=usercontribs接口检查贡献次数,若为0则调用action=delete接口删除用户。
      这种方式完全通过官方API操作,无需接触数据库,适合有基础开发能力的用户。
  • 手动批量操作(适合少量用户)
    如果用户数量不多,可通过Special:ListUsers页面,在筛选条件中选择“编辑次数为0”,然后逐个勾选用户,通过页面的批量操作功能删除(部分MediaWiki版本支持批量勾选删除,若没有则需借助浏览器扩展实现批量勾选)。

需要注意的是:删除用户前要确认用户确实没有任何形式的贡献(包括讨论页回复、文件上传、模板编辑等),避免误删有隐性贡献的用户;操作前一定要做好数据库备份,防止意外情况发生。

内容的提问来源于stack exchange,提问作者VN20

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 10:33:17