【问题标题】:How to hide specific Main Cagtegory and all associated child categories in Wordpress Admin (Backend)如何在 Wordpress Admin(后端)中隐藏特定的主类别和所有关联的子类别
【发布时间】:2022-01-16 11:36:35
【问题描述】:

我使用以下功能在 wp 后端编辑帖子/产品页面中隐藏特定用户角色的特定类别。类别 ID 330 具有多个子类别。知道如何隐藏主要类别 (330) 和所有子类别,而不管子类别的数量如何?

    /*
     * Hide Specified Categories (by ID) from shop_manager Role
    */

    add_action( 'admin_init', 'wpse_55202_do_terms_exclusion_shop_manager_role' );
    function wpse_55202_do_terms_exclusion_shop_manager_role() {
        global $current_user;
        // if( current_user_can('editor') ) {
        if ( in_array('shop_manager', $current_user->roles) )
            add_filter( 'list_terms_exclusions', 'wpse_55202_list_terms_exclusions_shop_manager_role', 10, 2 );
        }

    function wpse_55202_list_terms_exclusions_shop_manager_role($exclusions,$args) {
        return $exclusions . " AND ( t.term_id <> 330 )  AND ( t.term_id <> 430 )"; 
    }

一次性隐藏所有...

【问题讨论】:

    标签: php wordpress categories wp-admin


    【解决方案1】:

    以下代码不包括父类别和所有子类别。

        /*
         * Hide Specified Categories (by ID) from shop_manager Role
        */
        add_action( 'admin_init', 'wpse_55202_do_terms_exclusion_shop_manager_role' );
        function wpse_55202_do_terms_exclusion_shop_manager_role() {
            global $current_user;
            // if( current_user_can('editor') ) {
            if ( in_array('shop_manager', $current_user->roles) )
                add_filter( 'list_terms_exclusions', 'wpse_55202_list_terms_exclusions_shop_manager_role', 10, 2 );
            }
        function wpse_55202_list_terms_exclusions_shop_manager_role($exclusions,$args) {
            $children_of_parent_cat = implode(',',get_term_children(458,'product_cat')); // get all child categories
            $children_of_parent_cat = (empty($children_of_parent_cat) ? '' : ",$children_of_parent_cat"); // if childs empty or not
            // return $exclusions . " AND (t.term_id NOT IN (458{$children_of_parent_cat}))";
            return $exclusions . " AND (t.term_id NOT IN (458 ".$children_of_parent_cat." ))"; // Exlculde parent and all child cats
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-24
      • 2022-12-10
      相关资源
      最近更新 更多