Je suis en train de développer un site sur un serveur auquel le client a également accès et ce que j'aimerais faire, c'est montrer WP_DEBUG
uniquement aux administrateurs. Référencer l'article de Yoast sur un moyen de contourner cela:
if ( isset($_GET['debug']) && $_GET['debug'] == 'true')
define('WP_DEBUG', true);
s'afficherait WP_DEBUG
uniquement pour les URL qui s'y sont ?debug=true
jointes, commehttp://domain.com/?debug=true
Je pensais que la barre de débogage pouvait contenir certaines de ces informations par défaut (qu'elles soient WP_DEBUG
activées ou non ), mais je pensais à la folie car je ne pense pas que ce soit le cas.
Donc, ce que je pensais serait utile, ce serait une vérification pour l'utilisateur actuel (avoir la manage_options
capacité et ensuite exécuter des liens via add_query_arg()
:
function zs_admin_debug() {
if (!current_user_can('manage_options')) {
add_query_arg('debug','true');
}
}
mais ce dont je ne suis pas sûr, c'est - y a-t-il un crochet que je peux utiliser pour effectuer tous les liens sur un site avec cela? De cette façon, les administrateurs voient toujours le débogage que je pensais être extrêmement utile. Merci pour toute aide, comme toujours!
if ( isset( $_GET['bug'] ) )
je visite donc le lien /? Bug pour voir le débogage :)Réponses:
Je ne pense pas qu'il existe un crochet URL universel. Il y a beaucoup de crochets et je l'ai peut-être manqué, mais je ne pense pas qu'il y en ait un. Vous pouvez regarder à travers les crochets sur adambrown.info . Il existe de nombreux crochets URL, mais pas universels.
Si je peux suggérer une autre solution: consigner les erreurs dans un fichier.
Ce code provient directement du Codex pour le fichier wp-config.php . Si vous faites cela, vous n'aurez pas à vous soucier de jongler
$_GET
ou de trier qui est et qui n'est pas un administrateur.Éditer:
J'ai oublié une solution possible. Vous pouvez le faire avec Javascript. Un script court pourrait attacher votre paramètre à toutes les URL de la page, et vous pouvez facilement charger le script uniquement pour les administrateurs.
Je suggérerais toujours la solution «log» car les erreurs pour tout le monde sont enregistrées. Si vos gens sont comme les miens et envoient des "rapports" d'erreur comme " hé, le site est cassé quand vous faites ce formulaire " vous apprécierez le journal. :)
la source
Même si ma première approche a été pour la poubelle et que la réponse s_ha_dums est une façon propre et probablement la meilleure de procéder, permettez-moi de vous proposer un scénario de travail supplémentaire:
Ce qui suit définit un cookie qui est valide pour les prochaines 24 heures (86 400 secondes) lorsqu'un administrateur se connecte au système. Dans wp-config.php , la constante
WP_DEBUG
est conditionnellement définie en fonction de la présence et de la valeur dudit cookie.Avertissement:
WP_DEBUG
sera ensuite défini pourtrue
que tout le monde se connecte à partir du même navigateur sur la même machine le même jour.dans functions.php (ou en tant que plugin):
Voir: Codex> Référence d'action> wp_login
dans wp-config.php :
la source
init
est trop tard pour avoir un effet. J'ai aussi essayé ça et ça n'a pas marché.init
qui sont intéressantes.Cela ne répond pas précisément à votre question, mais d'après mon expérience personnelle, j'ai trouvé qu'il était préférable d'activer le mode de débogage en faisant correspondre l'adresse IP au lieu de l'URL.
Cela nécessite de modifier les liens et résout comment identifier l'administrateur avant que WP ne charge les fonctionnalités utilisateur requises.
la source
echo $_SERVER['REMOTE_ADDR']
rendements::1
attendus sur localhost? Cela ressemble honnêtement à un fichier journal séparé et de cette façon (comme les adresses IP personnelles semblent changer tout le temps) peut être une bonne idée.::1
c'est juste une version IPv6 de127.0.0.1
. L'IP dynamique est moins pratique, mais de toute façon je ne traite cela que comme une technique de dépannage temporaire pour les choses en direct. Ne remplace pas la configuration de débogage locale appropriée.C'est aussi une astuce possible, mais vous devez mettre cela dans votre
wp-config.php
puisqueWP_DEBUG
c'est défini ici:Ajoutez
?debugsecret=debugsecret
à l'URL de la page que vous souhaitez déboguer.la source
Si vous avez une adresse IP statique, vous pouvez le faire:
Source: DEBUGGING WORDPRESS - COMMENT UTILISER WP_DEBUG SUR LE SITE DE PRODUCTION
la source