标题很长,可能也没有完全表达清楚真正的意思,直接说需求吧。
我呢,建立了一个关于出版物的命名空间(主要还是针对书籍),每一本书籍除了词条的主要内容外,还有内容简介、作者简介、目录和书摘四个部分,其中作者的信息是通过他的词条内容来提供。
就比如张三写了一本叫做《张三自传》的书,我为这本书创建了一个词条,然后又为张三创建了一个词条。在《张三自传》中的作者简介直接用张三词条中的主要内容即可。
通过搜索和实践,终于让我找到了解决的方法。

一、安装Interwiki插件

正常情况下,我们几乎不太会用到该插件,因为跨Wiki的大多数网站都被墙挡住了,即便没有被墙可能也会影响到浏览的速度。当然多语言的站点以及维基农场的话,可能还是会用到该功能。
之所以会需要安装该插件是因为后面的插件会用到,这里先暂时不提。
打开配置文件LocalSettings.php文件,在其中插入:

# 启用Interwiki扩展
wfLoadExtension( 'Interwiki' );
# 允许超级管理员可以编辑interwiki数据
$wgGroupPermissions['sysop']['interwiki'] = true;

一定要开启超级管理员编辑interwiki数据的功能,后面会用到。

二、安装InterwikiExtracts插件

这个是实现本功能的主要插件,它能将跨wiki站点中的内容提取出来并插入到词条内容中。
打开配置文件LocalSettings.php文件,在其中插入:

# 启用InterwikiExtracts扩展
wfLoadExtension( 'InterwikiExtracts' );

三、修改interwiki数据表

在浏览器中输入https://你的网站/特殊:跨wiki,然后点击添加一个跨wiki或语言前缀链接
mediawiki-add-interwiki_data.png
输入跨wiki的前缀,在上例中我用了mswiki的前缀,然后输入网站的地址——记得后面要加$1参数。

四、更新数据库内容

如果只是完成上面的内容是没有用的,按照InterwikiExtracts中的操作指示,我们需要打开数据库,然后运行更新代码:

UPDATE interwiki SET iw_api = "https://wiki.mindseed.cn/api.php" WHERE iw_prefix = "mswiki";

注意:第三步和第四步缺一不可,而且必须先修改跨wiki数据表之后再更新数据库,否则无效。

五、插入截取内容
打开想要插入内容的条目,然后在其中输入{{#InterwikiExtract:条目名称}},效果如下:
mediawiki-interwikiextracts.png
其中作者简介的内容就来源于该作者的条目内容。
注:具体如何使用InterwikiExtract请参考官方文档。

最后

如果各位有更好的方法还请指教,多谢。

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