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 文件里即可。
原理
在上面的代码中,首先检查用户是否在群组页面上,如果当前用户不是网站管理员,那么就从群组管理页中去掉 “删除群组”。