Fiquei surpreso ao descobrir que add_role () modifica o banco de dados e falha se a função já existir. Existem duas implicações aqui, uma mais séria que a outra: 1) se você estiver em desenvolvimento e atualizar seu código add_role, primeiro remova_role () 2) depois de acertar, nunca precisará executar esse código novamente.
Então, normalmente, coloco meu add_role () dentro de um gancho de ação wp_loaded. E como estou em desenvolvimento, também adicionei um remove_role () antes do meu add_role, para ter certeza de que, se eu modificar minha lista de limites, ele entrará em vigor.
Mas claramente isso agora está sendo executado toda vez que uma página do blog está sendo acessada. Ok, eu poderia colocá-lo em uma ação somente para administrador ou criar uma página de plug-in, talvez em Usuários ou Ferramentas, onde essa função pode ser criada uma vez. Acho que espero que exista uma solução mais simples e elegante por aí.
Eu não imagino que exista um tipo de ação run_once, existe?
Ou a melhor prática é apenas adicionar a função e usar add_cap () várias vezes? E mesmo assim, imagino que add_cap está acessando o banco de dados.
Apenas pensando em termos da melhor maneira de reduzir o acesso desnecessário ao banco de dados. Quais são as suas melhores práticas?
remove_role()
função antesadd_role()
me ajudou.