文章目录
BuddyPress是使用WordPress构建社区和社交网站的最简单和全面的解决方案。
有时,您可能不想让群组创建者删除自己的群组,所以您可以使用以下代码来阻止非管理员账号删除群组:
/**
* 仅允许网站管理员删除群组
* @link https://buddydev.com/buddypress/disable-buddypress-group-deletion-non-site-admin/
*/
function buddydev_disable_group_delete_by_non_site_admin() {
if ( ! bp_is_group() || is_super_admin( ) ) {
return ;
}
$parent = groups_get_current_group()->slug . '_manage';
bp_core_remove_subnav_item( $parent, 'delete-group', 'groups' );
//BuddyPress seems to have a bug, the same screen function is used for all the sub nav in group manage
//so above code removes the callback, let us reattach it
//if we don't , the admin redirect will not work
add_action( 'bp_screens', 'groups_screen_group_admin' , 2 );
}
add_action( 'groups_setup_nav', 'buddydev_disable_group_delete_by_non_site_admin' );
将以上代码放在bp-custom.php或者您的主题里的function.php文件里即可。
原理
在上面的代码中,首先检查用户是否在群组页面上,如果当前用户不是网站管理员,那么就从群组管理页中去掉“删除群组”。