如何在 Wordpress Admin(后端)中隐藏特定的 Main Category 和所有相关的子类别
How to hide specific Main Cagtegory and all associated child categories in Wordpress Admin (Backend)
我使用以下功能在 wp 后端编辑 post / 产品页面中对特定用户角色隐藏特定类别。类别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
}
我使用以下功能在 wp 后端编辑 post / 产品页面中对特定用户角色隐藏特定类别。类别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
}