
如果你为wordpress使用最佳的地理定位器插件之一-Geo my WordPress(GMW),并且你具有不同的用户角色,则有时最好隐藏所有角色(特殊角色除外)的“位置”标签。另外,也许你只想在地图上显示特殊的用户角色。这里是简单的代码片段
function set_only_vendors_in_gmw_results( $args, $gmw ) {
$userargs = array(‘role’=>’vendor’, ‘fields’=> ‘ID’);
$vendorids = get_users( $userargs);
if (!empty($vendorids)){
$vendorids = implode(‘,’,$vendorids);
$args[‘include’] = $vendorids;
return $args;
}
}
add_filter( ‘gmw_fl_search_query_args’, ‘set_only_vendors_in_gmw_results’, 10, 2 );add_filter( ‘gmw_fl_setup_nav’, ‘rh_remove_location_tab’, 10, 1 );
function rh_remove_location_tab($bp){
global $bp;
$userobj = get_userdata($bp->displayed_user->id);
if ( in_array( ‘vendor’, (array) $userobj->roles ) ) {
return array(
‘name’ => __( ‘Location’, ‘GMW’ ),
‘slug’ => GMW_FL_SLUG,
‘position’ => 60,
‘screen_function’ => array($bp->gmw_location, ‘screen_functions’),
‘default_subnav_slug’ => GMW_FL_SLUG
);
}
else {
return;
}
}
将此代码添加到主题的functions.php中。此代码仅对用户角色“供应商”启用位置,对所有其他角色隐藏。


