是否可以在MediaWiki中拥有自定义类别命名空间?

时间:2016-12-20 13:20:47

标签: php namespaces mediawiki categories

我目前正在为我和我的一个朋友建立一个Wiki,其目的是建立一个带有标签,歌词,连接等的集中式协作音乐系统。

歌曲,专辑,口译等类别在这里非常有用(我们不想错过它们),但我们不断面临内部链接越来越长,可读性越来越低的问题,因为我们必须用“(歌曲)”和每张专辑“(专辑)”等后缀每首歌曲。原因是歌曲,专辑和诠释之间存在歧义,就像歌曲与专辑中的专辑名称相同时

我偶然发现了namespace aliases,但这并没有解决歧义问题。这同样适用于所有可用的扩展here

我想要做的是创建一个新的命名空间(例如“Album”),这样我就可以摆脱后缀。我知道如何添加名称空间等,如hereherehere所述,但我没有找到任何关于让它们表现得像是类别的信息,i。即将[[Album:Whatever]]放在页面末尾Song:Whatever会将该歌曲包含在类别Album:Whatever中,如果我想输出不带前缀的类别链接,我会输入[[:Album:Whatever|Whatever]] }。

有没有人知道如上所述从类别命名空间添加自定义命名空间“派生”的方法?真的很感激任何帮助。提前谢谢。

1 个答案:

答案 0 :(得分:0)

也许我并没有完全找到你,因为这听起来像是一种过于复杂的做事方式。为什么不简单地使用模板?

您可以拥有一个名为“Album”(或“Albumcat”或类似名称)的模板,如下所示:

add_action( 'save_post', 'collect_tags' );
// ...
function collect_tags($postId){
    $terms = get_object_term_cache( $postId, 'post_tag' );
    if ( false === $terms ) {
        $terms = wp_get_object_terms( $postId, 'post_tag' );
    }
    if( empty( $terms )) {
        $terms = wp_get_post_tags( $postId );
    }
    return $terms;
}

然后您可以将其简单地包含在文章页面中:

{{1}}

......文章将被归类为“专辑:城市赞美诗”。