Me sorprendió descubrir que add_role () modifica la base de datos y falla si el rol ya existe. Aquí hay dos implicaciones, una primera más seria que la otra: 1) si está en desarrollo y actualiza su código add_role, primero debe eliminar_role () 2) una vez que lo tenga bien, nunca debería tener que ejecutar ese código de nuevo.
Por lo general, he estado poniendo mi add_role () dentro de un gancho de acción wp_loaded. Y ya que estoy en desarrollo, también he agregado remove_role () antes de add_role, por lo que puedo estar seguro de que si modifico mi lista de mayúsculas, tendrá efecto.
Pero claramente esto se está ejecutando cada vez que se accede a una página del blog. Bien, podría ponerlo en una acción solo de administrador, o podría crear una página de complemento tal vez en Usuarios o Herramientas donde este rol se puede crear una vez. Supongo que espero que haya una solución más simple y elegante por ahí.
No creo que haya un tipo de acción run_once, ¿verdad?
¿O es la mejor práctica simplemente agregar el rol y luego usar add_cap () un montón de veces? E incluso entonces imagino que add_cap está accediendo a la base de datos.
Solo pensando en términos de la mejor manera de reducir el acceso innecesario a la base de datos. ¿Cuáles son sus mejores prácticas?