我可以关闭写入标记/分类吗?

时间:2011-01-03 作者:Chris

我的站点工作人员在标签方面遇到的一个大问题是,由于写入功能,类似或重复的标签数量巨大。

我将向我的站点添加新的自定义分类法,以供他们使用,但我希望避免标记带来的问题。我很想知道我是否可以关闭写入,所以只能通过该分类法的管理区域的一部分手动添加它们。它是非层次的,所以他们仍然可以输入,系统将自动完成并搜索他们可能要查找的标签,这很好。我只是不希望他们能够从post屏幕创建新标签。

这可能吗?我在看Codex中的分类法和register\\u taxonomy()页面,我想“rewrite”函数可能就是我要找的,但我现在不这么认为。

1 个回复
最合适的回答,由SO网友:Rarst 整理而成

以下是我的想法,似乎奏效了:

add_filter( \'pre_post_tags_input\', \'no_tags_input_create\' );
add_filter( \'pre_post_tax_input\', \'no_tax_input_create\' );

function no_tags_input_create($tags_input) {

    $output = array();

    foreach( $tags_input as $tag )
        if( term_exists( $tag, \'post_tag\') )
            $output[] = $tag;

    return $output;
}

function no_tax_input_create($tax_input) {

    if( !isset($tax_input[\'post_tag\']) )
        return $tax_input;

    $output = array();
    $tags = explode(\',\', $tax_input[\'post_tag\']);

    foreach( $tags as $tag )
        if( term_exists( $tag, \'post_tag\') )
            $output[] = $tag;

    $tax_input[\'post_tag\'] = implode(\',\',$output);

    return $tax_input;
}
这是针对标记的,您可以轻松地扩展第二个函数来处理自定义分类法。

结束

相关推荐

Tags page not for post

符合Wordpress: category page not for post\'s.我使用wordpress为flash游戏创建网站,所以我没有特定的贴子页面。我通过新贴子添加每个游戏。php?post\\u type=游戏,你可以看到这不是wordpress的常规帖子。现在我尝试对标签进行相同的处理,但再次卡住。我现在拥有的:<?php if (is_page() ) { $tag = get_post_meta($posts[0]->ID, \'tag\', true);