Deseo crear una capacidad personalizada para acceder a la interfaz de mi complemento.
- ¿Debería el complemento administrar agregar esta capacidad a todas las cuentas de administrador en la activación?
- Si es así: ¿WordPress logra agregar la capacidad a todos los administradores de subblogs y superadministradores en instalaciones de múltiples sitios, o esa función debe ser manejada por el complemento?
Respuestas:
Elimina lo que agregues
Primero, asegúrese de que todo lo que agregue en la activación también se elimine durante la desinstalación . Tengo un breve tutorial que incluye un código de ejemplo para ti.
Prueba con un pequeño complemento:
Realmente no sé mucho sobre MU, pero por lo que puedo decir, el objeto de roles es global en todos los blogs. Simplemente pruebe este pequeño complemento y vea qué puede obtener:
Agregar capacidades
Nota: Puede agregar la capacidad al rol sin otorgarle acceso, solo configure el segundo argumento
$grant = false;
. Esto permite incluir en la lista blanca a usuarios individuales simplemente agregando el límite, incluido el último argumento como verdadero.fuente
Para un complemento en el que estoy trabajando actualmente, quería otorgar / restringir el acceso a la configuración del complemento (es decir, las páginas correspondientes del menú de administración) en función de cada rol .
Por lo tanto, tuve que agregar un nuevo complemento específico
capability
parauser roles
.Desafortunadamente, la respuesta de Kaiser parece que ya no funciona, así que pasé un tiempo tratando de descubrir cómo permitir la funcionalidad mencionada anteriormente.
El horario
Antes de compartir mi código con usted, esto es de lo que se trata, en texto plano:
THE_NEW_CAP
a los roles que tienen una cierta capacidad incorporadaBUILT_IN_CAP
(en mi caso:)edit_pages
.El código
Y aquí está la lista anterior convertida en código:
»Configurarlo
»Utilizándolo
»Limpiarlo
Nota: no utilice las mayúsculas. Esto es solo para facilitar la lectura.
fuente
get_editable_roles()
para buscar roles que desea editar. Usted va a romper los plugins de otra manera.Esto funciona para mi:
fuente