Ich entwickle eine Site auf einem Server, auf den auch der Client zugreifen kann. Ich möchte sie WP_DEBUG
nur Administratoren zeigen. Verweise auf Yoasts Artikel , um dies zu umgehen :
if ( isset($_GET['debug']) && $_GET['debug'] == 'true')
define('WP_DEBUG', true);
würde WP_DEBUG
nur für URLs anzeigen, die ?debug=true
an sie angehängt sind, wiehttp://domain.com/?debug=true
Ich dachte, dass die Debug-Leiste einige dieser Informationen standardmäßig enthalten könnte (unabhängig davon, ob sie aktiviert sind oder nicht WP_DEBUG
), aber ich war verrückt, da ich nicht glaube, dass dies der Fall ist.
Also, was ich dachte, wäre nützlich, wäre eine Überprüfung für den aktuellen Benutzer (mit der manage_options
Fähigkeit und dann Links durchlaufen add_query_arg()
:
function zs_admin_debug() {
if (!current_user_can('manage_options')) {
add_query_arg('debug','true');
}
}
Aber ich bin mir nicht sicher, ob es einen Haken gibt, mit dem ich alle Links auf einer Site mit diesem bewirken kann. Auf diese Weise sehen Administratoren immer das Debugging, was ich für äußerst nützlich hielt. Vielen Dank für jede Hilfe wie immer!
if ( isset( $_GET['bug'] ) )
so dass ich link /? BugAntworten:
Ich glaube nicht, dass es einen universellen URL-Hook gibt. Es gibt viele Haken und ich habe es vielleicht verpasst, aber ich glaube nicht, dass es einen gibt. Sie können bei adambrown.info durch die Haken schauen . Es gibt viele URL-Hooks, aber keine universellen.
Wenn ich eine andere Lösung vorschlagen kann: Protokollieren Sie die Fehler in einer Datei.
Dieser Code stammt direkt aus dem Codex für die Datei wp-config.php . Wenn Sie das tun, müssen Sie sich keine Gedanken darüber machen
$_GET
, wer ein Administrator ist und wer nicht.Bearbeiten:
Ich habe eine mögliche Lösung vergessen. Sie können dies mit Javascript tun. Ein kurzes Skript könnte Ihren Parameter an alle URLs auf der Seite anhängen, und Sie können das Skript ziemlich einfach nur für Administratoren laden.
Ich würde immer noch die "Protokoll" -Lösung vorschlagen, da Fehler für alle protokolliert werden. Wenn Ihre Leute wie ich sind und Fehlerberichte wie " Hey, die Seite ist kaputt, wenn Sie dieses Formular ausfüllen " senden , werden Sie das Protokoll zu schätzen wissen. :)
quelle
Obwohl mein erster Ansatz für die Mülltonne war und die Antwort von s_ha_dums eine saubere und wahrscheinlich beste Lösung ist, möchte ich noch ein weiteres Arbeitsszenario anbieten:
Im Folgenden wird ein Cookie festgelegt, das für die nächsten 24 Stunden (86400 Sekunden) gültig ist, wenn sich ein Administrator beim System anmeldet. In wp-config.php wird die Konstante
WP_DEBUG
abhängig vom Vorhandensein und Wert des Cookies bedingt definiert.Vorsichtsmaßnahme:
WP_DEBUG
wird danachtrue
für alle festgelegt, die sich am selben Tag über denselben Browser auf demselben Computer anmelden.in functions.php (oder als Plugin):
Siehe: Codex> Aktionsreferenz> wp_login
in der wp-config.php :
quelle
init
es zu spät ist, um etwas zu bewirken. Ich habe es auch versucht und es hat nicht funktioniert.init
von Interesse sind.Es beantwortet Ihre Frage nicht genau, aber aus persönlicher Erfahrung fand ich es besser, den Debug-Modus durch Abgleichen der IP-Adresse anstelle der URL zu aktivieren.
Dies erfordert eine Änderung der Links und löst das Identifizieren des Administrators, bevor WP die erforderliche Benutzerfunktionalität lädt.
quelle
echo $_SERVER['REMOTE_ADDR']
Erträge::1
, die auf localhost erwartet werden? Es klingt ehrlich gesagt wie eine separate Protokolldatei, und auf diese Weise (da sich die IP-Adressen zu Hause scheinbar ständig ändern) ist es möglicherweise eine gute Idee.::1
ist nur IPv6-Version von127.0.0.1
. Dynamische IP-Marken sind weniger praktisch, aber ich betrachte dies nur als vorübergehende Fehlerbehebungstechnik für Live-Inhalte. Ersetzt nicht das richtige lokale Debug-Setup.Dies ist auch ein möglicher Trick, aber Sie müssen diesen in Ihr
wp-config.php
daWP_DEBUG
einfügen, das dort definiert ist:Fügen Sie
?debugsecret=debugsecret
der Seiten-URL, die Sie debuggen möchten, hinzu.quelle
Wenn Sie eine statische IP-Adresse haben, können Sie Folgendes tun:
Quelle: DEBUGGING WORDPRESS - VERWENDUNG VON WP_DEBUG AUF DER PRODUKTIONSSEITE
quelle