我查看了 SQL 数据库中的“文本”表,发现页面内容的字段相当复杂。试图使用 WhatLinksHere 但让自己陷入了更大的困惑。
我相信一定有一种我可以使用的简单方法,从 ReplaceText 扩展以及搜索 php 文件来看。但这些文件对我来说确实看起来很神秘,因为它们引用了一些其他文件。我想知道是否有人可以帮助我解决这个问题。
(P/S:我查看了“pagelinks”表,只看到了 pl_from。不知道为什么没有 pl_to?)
最佳答案
模板包含记录在 templatelinks
table 中, 不在 pagelinks
.
两个表的格式相同:tl_from
字段包含链接/嵌入页面的页面 ID,而字段 tl_namespace
和 tl_title
包含被嵌入的目标页面的命名空间和规范化(数据库键形式,即空格的下划线)标题。
对于模板链接,目标 namespace 通常 为 10(模板),但情况并非总是如此:可以使用语法 {{Namespace:Title}}
(或只是 {{:Title}}
用于主命名空间中的页面)。
这种不对称的原因是,虽然 transcluding 页面必须存在,但不能保证被嵌入的模板确实存在。因此,目标页面可能没有页面 ID,因此我们需要使用它的标题(和命名空间)来引用它。
关于php - 检查 Mediawiki 文章内容中是否存在模板的最有效方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17460045/