如何限制用户和管理员创建新的分类术语?

时间:2015-09-09 作者:Foolish Coder

我已经为特定的自定义帖子类型(schedule)创建了分类法(schedule\\u day\\u taxonomy)。

add_action( \'init\', \'schedule_day_tax_func\' );
function schedule_day_tax_func() {
    register_taxonomy(
        \'schedule_day_taxonomy\',
        \'schedule\',
        array(
            \'hierarchical\' => true,
            \'label\' => \'Day\',
            \'query_var\' => true,
        )
    );
}
现在是分类学DAY 仅显示在自定义帖子类型中schedule我已经从管理面板创建了“7个术语”。

Days

现在我要删除Add New Category 所有用户和管理员的永久选项。

我该怎么做?

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

此支票:

    <?php if ( current_user_can( $taxonomy->cap->edit_terms ) ) : ?>
需要满足才能显示“添加新类别”链接。

您可以为您的schedule_day_taxonomy 分类法,当您注册它时。

示例

仅具有edit_schedule_day_taxonomy 功能可以编辑分类:

add_action( \'init\', \'schedule_day_tax_func\' );
function schedule_day_tax_func() {
    register_taxonomy(
        \'schedule_day_taxonomy\',
        \'post\',
        array(
            \'hierarchical\' => true,
            \'label\' => \'Day\',
            \'query_var\' => true,
            \'capabilities\' => array(
                \'edit_terms\' => \'edit_schedule_day_taxonomy\',
            ),
        )
    );
}
没有此功能,用户无法编辑此分类法。如果需要编辑它,可以从上面的代码中删除它,或将其分配给管理员用户。