web-dev-qa-db-ja.com

Wp-adminの特定のカテゴリのみを表示/非表示にするnew-post.php

誰かが私にwp-adminの選択ボックスからカテゴリを隠すために使用する必要がある方法や機能のアイデアを教えてもらえますか?

私はカスタム投稿タイプを持っています、そして私は彼らが彼らの投稿を編集している間私がそれらのカテゴリーのうち5つの間で選択できるようにしたいです。私はこれがカスタム投稿タイプの場合のみで、通常の投稿の場合はそうではないことを望みます。

3
Eckstein

これのような何かはそれをするべきです。ただし、wpse_77670_getPermittedCategories()を使用可能なカテゴリの配列を選択し、'your_custom_category'をカスタム投稿タイプ用のカスタム分類法に置き換えます。

/**
* filter terms checklist args to restrict which categories a user can specify
* @param array $args arguments for function get_terms()
* @param array $taxonomies taxonomies to search
* @return array
*/
function wpse_77670_filterGetTermArgs($args, $taxonomies) {
    // check whether we're currently filtering selected taxonomy
    if (implode('', $taxonomies) == 'your_custom_category') {
        $cats = wpse_77670_getPermittedCategories();    // as an array

        if (empty($cats))
            $args['include'] = array(99999999);     // no available categories
        else
            $args['include'] = $cats;
    }

    return $args;
}

if (is_admin()) {
    add_filter('get_terms_args', 'wpse_77670_filterGetTermArgs', 10, 2);
}

カスタム投稿タイプで通常の「カテゴリ」分類法を使用するように編集します。

function wpse_77670_filterGetTermArgs($args, $taxonomies) {
    global $typenow;

    if ($typenow == 'tsv_userpost') {
        // check whether we're currently filtering selected taxonomy
        if (implode('', $taxonomies) == 'category') {
            $cats = array(89,90,91,92,93,94); // as an array

            if (empty($cats))
                $args['include'] = array(99999999); // no available categories
            else
                $args['include'] = $cats;
        }
    }

    return $args;
}

if (is_admin()) {
    add_filter('get_terms_args', 'wpse_77670_filterGetTermArgs', 10, 2);
}
5
webaware