Я разрабатываю сайт на сервере, к которому у клиента также есть доступ, и что я хотел бы сделать, это показать WP_DEBUG
только для администраторов. Ссылка на статью Йоста об этом:
if ( isset($_GET['debug']) && $_GET['debug'] == 'true')
define('WP_DEBUG', true);
будет отображаться WP_DEBUG
только для URL-адресов, которые ?debug=true
прикреплены к ним, какhttp://domain.com/?debug=true
Я думал, что панель отладки может содержать некоторую часть этой информации по умолчанию (независимо от того, включена она или нет WP_DEBUG
), но я подумал, что это безумие, поскольку я не верю, что это так.
Таким образом, то, что я думал, было бы полезно, было бы проверкой текущего пользователя (имеющего manage_options
возможность и затем запускающего ссылки через add_query_arg()
:
function zs_admin_debug() {
if (!current_user_can('manage_options')) {
add_query_arg('debug','true');
}
}
но в чем я не уверен - есть ли ловушка, с помощью которой я могу использовать все ссылки на сайте с этим? Таким образом, администраторы всегда видят отладку, которая, на мой взгляд, была бы чрезвычайно полезной. Спасибо за любую помощь, как всегда!
if ( isset( $_GET['bug'] ) )
поэтому яОтветы:
Я не думаю, что есть универсальный хук URL. Есть много крючков, и я, возможно, пропустил это, но я не думаю, что есть один. Вы можете посмотреть через крючки на adambrown.info . Есть много хуков URL, но не универсальных.
Если я могу предложить другое решение: зарегистрируйте ошибки в файлах.
Этот код прямо из Кодекса для файла wp-config.php . Если вы сделаете это, вам не придется беспокоиться о том, чтобы манипулировать
$_GET
или выяснять, кто является, а кто нет администратором.Редактировать:
Я забыл одно возможное решение. Вы можете сделать это с помощью Javascript. Короткий скрипт может прикрепить ваш параметр ко всем URL-адресам на странице, и вы можете довольно легко загрузить скрипт только для администраторов.
Я бы по-прежнему предложил решение «log», так как ошибки для всех регистрируются. Если ваши люди похожи на меня и отправляют сообщения об ошибках типа « эй, сайт закрывается, когда вы заполняете эту форму », вы оцените журнал. :)
источник
Несмотря на то, что мой первый подход был для мусорной корзины, а ответ s_ha_dums - это чистый и, вероятно, лучший способ добиться этого, позвольте мне предложить еще один рабочий сценарий:
Ниже приведен файл cookie, действительный в течение следующих 24 часов (86400 секунд), когда администратор входит в систему. В wp-config.php константа
WP_DEBUG
определяется условно в зависимости от наличия и значения указанного cookie.Предостережение:
WP_DEBUG
после этого будет установлено значениеtrue
для всех, кто входит в систему с одного и того же браузера на одном компьютере в один и тот же день.в functions.php (или как плагин):
Смотрите: Кодекс> Справочник действий> wp_login
в wp-config.php :
источник
init
уже слишком поздно, чтобы иметь какой-либо эффект. Я также попробовал это, и это не сработало.init
того, как они представляют интерес.Он не дает точного ответа на ваш вопрос, но из личного опыта я обнаружил, что лучше включить режим отладки, сопоставляя IP-адрес вместо URL.
Это требует модификации ссылок и решает, как идентифицировать администратора до того, как WP загрузит необходимые пользовательские функции.
источник
echo $_SERVER['REMOTE_ADDR']
доходностей::1
, ожидаемых на локальном хосте? По правде говоря, это звучит как отдельный лог-файл, и таким образом (поскольку домашние IP-адреса постоянно меняются) может быть хорошей идеей.::1
это просто версия для IPv6127.0.0.1
. Динамический IP делает менее удобным, но в любом случае я рассматриваю это как временную технику устранения неполадок для живого материала. Не заменяет правильную локальную настройку отладки.Это также возможный трюк, но вы должны поместить это в свой,
wp-config.php
так какWP_DEBUG
здесь определено:Добавьте
?debugsecret=debugsecret
на страницу URL, который вы хотите отладить.источник
Если у вас есть статический IP, вы можете сделать это:
Источник: ОТЛАДКА WORDPRESS - КАК ИСПОЛЬЗОВАТЬ WP_DEBUG НА ПРОИЗВОДСТВЕННОМ САЙТЕ
источник