沃梦达 / 编程问答 / php问题 / 正文

如何在WordPress Admin(后端)中隐藏特定的主Cagtegory和所有相关的子类别

How to hide specific Main Cagtegory and all associated child categories in Wordpress Admin (Backend)(如何在WordPress Admin(后端)中隐藏特定的主Cagtegory和所有相关的子类别)

本文介绍了如何在WordPress Admin(后端)中隐藏特定的主Cagtegory和所有相关的子类别的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用以下函数对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 )"; 
    }

一次隐藏全部...

推荐答案

以下代码排除父类别和所有子类别。

    /*
     * 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
    }

这篇关于如何在WordPress Admin(后端)中隐藏特定的主Cagtegory和所有相关的子类别的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:如何在WordPress Admin(后端)中隐藏特定的主Cagtegory和所有相关的子类别

基础教程推荐