Estou desenvolvendo um site em um servidor ao qual o cliente também tem acesso e o que eu gostaria de fazer é mostrar WP_DEBUG
apenas para administradores. Fazendo referência ao artigo do Yoast para contornar isso:
if ( isset($_GET['debug']) && $_GET['debug'] == 'true')
define('WP_DEBUG', true);
seria exibido WP_DEBUG
apenas para URLs ?debug=true
anexados a eles, comohttp://domain.com/?debug=true
Eu estava pensando que a barra de depuração poderia conter algumas dessas informações por padrão ( WP_DEBUG
ativadas ou não ), mas eu estava pensando em loucura, pois não acredito que seja esse o caso.
Então, o que eu achava que seria útil, seria uma verificação para o usuário atual (tendo a manage_options
capacidade e executando os links através de add_query_arg()
:
function zs_admin_debug() {
if (!current_user_can('manage_options')) {
add_query_arg('debug','true');
}
}
mas o que não tenho certeza é: existe um gancho que eu possa usar para efetuar todos os links em um site com isso? Dessa forma, os administradores sempre veem a depuração, o que eu pensei que seria extremamente útil. Obrigado por qualquer ajuda, como sempre!
if ( isset( $_GET['bug'] ) )
então eu visitar link / bug para ver depuração :)?Respostas:
Eu não acho que exista um gancho de URL universal. Há muitos ganchos e eu posso ter perdido, mas não acho que exista. Você pode olhar através dos ganchos em adambrown.info . Existem muitos ganchos de URL, mas não universais.
Se eu puder sugerir outra solução: Registre os erros nos arquivos.
Esse código é direto do Codex para o arquivo wp-config.php . Se você fizer isso, não precisará se preocupar com malabarismo
$_GET
ou resolver quem é e quem não é um administrador.Editar:
Eu esqueci uma solução possível. Você pode fazer isso com Javascript. Um script curto pode anexar seu parâmetro a todos os URLs da página, e você pode carregá-lo facilmente apenas para administradores.
Eu ainda sugeriria a solução 'log', pois erros para todos são registrados. Se seu pessoal é como o meu e envia 'relatórios' de erro como " ei, o site está quebrado quando você faz esse formulário ", você apreciará o log. :)
fonte
Embora minha primeira abordagem tenha sido a resposta para a lixeira e o s_ha_dums seja uma maneira limpa e provavelmente a melhor de fazer isso, deixe-me oferecer mais um cenário de trabalho:
A seguir, define um cookie válido pelas próximas 24 horas (86400 segundos) quando um administrador efetua login no sistema. No wp-config.php , a constante
WP_DEBUG
é definida condicionalmente, dependendo da presença e valor do referido cookie.Advertência:
WP_DEBUG
a partir de então, será definidotrue
para todos que fizerem login no mesmo navegador na mesma máquina no mesmo dia.no functions.php (ou como um plugin):
Consulte: Codex> Referência de ação> wp_login
em wp-config.php :
fonte
init
é tarde demais para ter qualquer efeito. Eu também tentei isso e não funcionou.init
que são do seu interesse.Ele não responde à sua pergunta com precisão, mas por experiência pessoal, achei melhor ativar o modo de depuração combinando o endereço IP em vez do URL.
Isso requer a modificação de links e resolve como identificar o administrador antes que o WP carregue a funcionalidade necessária do usuário.
fonte
echo $_SERVER['REMOTE_ADDR']
rendimentos::1
esperados no host local? Parece honestamente como um arquivo de log separado e dessa maneira (como os IPs domésticos parecem mudar o tempo todo) pode ser uma boa idéia.::1
é apenas a versão IPv6 do127.0.0.1
. A criação de IP dinâmico é menos conveniente, mas, de qualquer maneira, eu trato isso apenas como uma técnica temporária de solução de problemas para coisas ao vivo. Não substitui a instalação de depuração local adequada.Este também é um truque possível, mas você precisa colocar isso no seu
wp-config.php
desde queWP_DEBUG
está definido lá:Adicione
?debugsecret=debugsecret
ao URL da página que você deseja depurar.fonte
Se você tem um IP estático, pode fazer isso:
Fonte: DEBUGGING WORDPRESS - COMO USAR WP_DEBUG NO SITE DE PRODUÇÃO
fonte