Manual:Using custom namespaces/zh

每一个 MediaWiki 的安装实例都可以在内建名字空间的基础之上增添自定的名字空间，进一步将其内容分割，增强组织的逻辑性. 通过“$wgExtraNamespaces”指令可以很容易地管理自定名字空间.

建立自定名字空间
在“LocalSettings.php”中添加自定名字空间，例如： 注意，每一个名字空间都有一个数值编号，自定名字空间应从 100 开始. 还要注意每一个偶数编号对应名字空间本身，奇数编号对应名字空间的讨论名字空间. 通常一个自定名字空间会与它的讨论名字空间一起建立，因此，上面的代码可能扩展为： 如果需要在其它地方使用自定名字空间的编号，最好为编号设定一个常量编号： 阻止除了“sysops”以外的人对“Foo”名字空间进行修改，并开启“Foo”的子页面功能，这样做：

内容名字空间
一个内容页面必须符合如下条件：
 * 在主名字空间或一个内容名字空间
 * 非重定向页面
 * 至少一个内部链接

通过“$wgContentNamespaces”设定一个自定名字空间为内容名字空间. 例如在 “LocalSettings.php“ 中加入如下内容： 会将编号为“100”的名字空间设定为内容空间.

Why you would want a custom namespace
A custom namespace can be used to hold content that should not be shown on the search results page, for example pages that are used only for transclusion.

处理已存在的页面
在数据库中，页面是通过名字空间编号与页面名称进行索引的. 如果在不存在的名字空间中建立了一个页面，例如“Bar:Some page”，它将被视为主名字空间中名称为“Bar:Some page”的页面. 如果之后建立了“Bar”名字空间则会出现问题：查找“Bar:Some page”页面时，会因为在“Bar”名字空间中不存在“Some page”页面而失败.

有三种方法消除这样的错误：

移动页面
当上述错误页面数量很少时，可以进行如下操作：


 * 1) 将出现错误的名字空间从配制文件中注释掉
 * 2) 依次将每个错误页面从先前的名字空间中移出，如“Bar:Some page”移动为“Bar2:Some page”.
 * 3) 将配制文件恢复原样
 * 4) 最后将移动的页面移回正确的名字空间

使用维护脚本
在“maintenance”目录中有一个叫“namespaceDupes.php”的脚本可以处理这个问题，其使用方法很简单，请用“--help”选项调用脚本来显示其使用说明.

使用数据库查询
可以用如下数据库查询将所有在主名字空间的“Bar:XXXX”页面移动到编号为“100”的名字空间：

Removing custom namespaces
The problem addressed above also occurs when a custom namespace definition is removed; MediaWiki is no longer aware of the numerical index for the namespace, and attempts to search the main namespace for the desired pages, leading to inaccessible content. This is a rare occurrence, since most sites will not need namespaces removed, but it is a problem.