2024年8月26日更新

这是在浏览官方文档时无意中发现的新方法,在配置文件LocalSettings.php加入如下代码:

# 禁用所有内置的讨论页
$wgNamespaceProtection[NS_TALK] = ['everyone'];
$wgNamespaceProtection[NS_USER_TALK] = ['everyone'];
$wgNamespaceProtection[NS_PROJECT_TALK] = ['everyone'];
$wgNamespaceProtection[NS_FILE_TALK] = ['everyone'];
$wgNamespaceProtection[NS_MEDIAWIKI_TALK] = ['everyone'];
$wgNamespaceProtection[NS_TEMPLATE_TALK] = ['everyone'];
$wgNamespaceProtection[NS_HELP_TALK] = ['everyone'];
$wgNamespaceProtection[NS_CATEGORY_TALK] = ['everyone'];

说明:$wgNamespaceProtection的功能是要求特殊权限来编辑某些名字空间。由于"everyone"不是一个核心的权限,因此所有人都会被拒绝访问(包括管理员)讨论页。
该方法比起下面的更加彻底和激进,所以具体选用哪种还是要看自己的需要。

2019年1月9日 原文

讨论页是特殊的维基百科页面,它包含了所有对主题文章的讨论。要查看讨论页,只要点击页面旁的“讨论”链接即可。当你在讨论页时,你可以用“条目”(如果不是条目,则可能是其他相应名称,比如“项目页面”等)链接返回到该讨论页所讨论的文章。

讨论页在维基百科中是具有重要意义的,因为协同工作的缘故,每个人都在参与条目的编辑工作,只是由于每个人的理解和获取信息的来源不同,难免会存在争议;另外对于完善某些功能(比如模板)来说,大家也有各自不同的想法。甚至是就某个用户而言,也可以通过讨论页进行交流。
但是在个人维基站的建设过程中,很多站长都是单兵作战,所有的条目和模板都是自己弄,基本属于单向输出状态,那么这种情况下讨论页就显得有些碍眼,反倒是对某些不明就里的朋友造成困扰。
那么是否可以禁用讨论页呢?答案是肯定的。

使用CSS禁用讨论页

要禁用讨论页面,请按照下列步骤操作:

  1. 以管理员身份登录wiki
  2. 在搜索框中输入Mediawiki:common.css
  3. 编辑页面并添加以下内容:
#ca-talk { display: none !important; }

此方法还允许仅针对单页删除讨论链接。要实现这一目的则加入如下内容:

body.page-Main_Page li#ca-talk { display: none !important; }

使用PHP禁用讨论页

要使用PHP禁用讨论页面,请在LocalSettings.php文件中输入以下行:

$wgHooks['SkinTemplateNavigation'][] = 'replaceTabs';
function replaceTabs( $skin, &$links) {  
        unset( $links['namespaces']['talk'] ); // 删除讨论
        return true;
}

注意:此方法貌似只对页面有效,对于模板之类的好像没用。

效果如下:

normal-homepage.png
disable-talk-page.png

其实从原理上来说,无非就是把讨论的链接或者是标签页隐藏掉以达到效果。

MediaWiki_Search_Results.png

从搜索的选项来看,讨论还是存在的,因为它属于默认的命名空间(关于命名空间的内容放到后续的教程中再详细讲)。

最后修改:2024 年 08 月 26 日
如果觉得我的文章对你有用,请随意赞赏