Intereting Posts
Показать сообщения пользователя. изменение ярлыков внутри внешнего вида -> меню для некоторых для полей Обновление продуктов, условий и отношений через SQL Помогите сконденсировать / оптимизировать некоторый рабочий код Использование AJAX с формами скрипт enqueue на странице архива типа персонализированного сообщения Пользовательские возможности для добавления, редактирования, удаления пользователей только определенной роли? Добавление тега закрытия короткого кода после цикла Архивные листинги, отобранные по дате Значения в пользовательском поле / сообщение Meta? Страницы должны иметь приоритет при использовании add_rewrite_rule Как добавить дополнительные каталоги выгрузки? Получить идентификатор признака с помощью «get_post_thumbnail_id (the_ID ())» – без печати на экран? Отфильтровать сообщения с meta_query NOT IN, где значение имеет несколько значений Как отображать значение метаданных? Пользовательский запрос для заказа несколькими таксономиями

Как использовать is_admin в wp-config.php

Я пытаюсь выбрать различные базы данных для администратора и пользователя, чтобы уменьшить нагрузку на базу данных. в wp-config.php, когда я пытаюсь использовать код

if(is_admin()) { define('DB_NAME', 'wp_db'); } else { define('DB_NAME', 'other_wp_db'); } 

обе базы данных используют одно и то же имя пользователя и пароль.

Я получаю сообщение об ошибке

Неустранимая ошибка: вызов неопределенной функции is_admin () в D: \ xampp \ htdocs \ wordpress \ wp-config.php в строке 24

Как использовать функцию is_admin () в файле wp-config.php?

кто-то может помочь.

Solutions Collecting From Web of "Как использовать is_admin в wp-config.php"

Я был бы осторожен в этом, потому что вы предполагаете, что все изменения вашей базы данных будут происходить только внутри бэкэнда администратора, но это может не всегда быть в этом случае. wp-cron приходит на ум, но есть также некоторые плагины, которые используют записи на переднем конце. Таким образом, вы можете столкнуться с неприятными проблемами синхронизации с двумя вашими базами данных, используя этот метод.

Есть много вещей, которые вы можете сделать, прежде чем перейти к главному / ведомому маршруту:

  • Проверьте, например, ваши журналы, если там что-то странное происходит.
  • Может быть, это плагин, который дает вам проблемы?
  • Возможно, у вас есть WP_Query который неэффективен?
  • Может быть, вы можете использовать API переходных процессов?
  • Может быть, вы можете рассмотреть устойчивый кэш объектов?
  • Там может быть много плагинов кеша, которые могут помочь.
  • Может быть, среда размещения замедляет вас?
  • Может быть, сервер MySQL не настроен достаточно хорошо? Существуют некоторые полезные скрипты настройки.
  • Возможно, пришло время обновить PHP, MySQL и начать использовать NginX 😉

Если вы решите, что этот маршрут необходим, там уже есть решения, такие как плагин HyperDB , который предоставляет вам db.phpdb.php для размещения в каталоге wp-content . Он проверяет любые записи / обновления во входящих SQL-запросах и перенаправляет их в основную базу данных. Но я просто просмотрел источник, и похоже, что он не поддерживает расширение mysqli , а только устаревший mysql . Если вам это не нравится, то, похоже, существует хотя бы одна развилка, которая поддерживает mysqli (я не связан с этим проектом).

Слишком рано использовать эту встроенную функцию WP. Вы можете использовать его в некоторых файлах плагина или темы, но не тогда, когда среда WP по-прежнему загружается.

Поскольку я не совсем уверен, что ваше намерение действительно правильно, вы должны использовать какой-либо другой способ (с родными функциями PHP) в отличие от интерфейса и администрирования. Например, что-то вроде этого:

 if( strpos($_SERVER['REQUEST_URI'],'/wp-admin/') !== FALSE ) { define('DB_NAME', 'wp_db'); } else { ... } 

Но я не думаю, что это пуленепробиваемое решение. Ajax-вызов обрабатывается в администрировании, wp-login.php не распространяется на код выше и т. Д.

Попробуйте вставить код

 if(is_admin()) {...} 

ПОСЛЕ

 require_once(ABSPATH . 'wp-settings.php'); 

потому что функция is_admin () загружается, когда выполняется wp-setting.php. Таким образом, вы можете избежать сообщения об ошибке, но я не понимаю, почему ваш сайт работает правильно только для администратора? Кажется, семантическая ошибка. Я думаю, что некоторые компоненты не будут работать правильно и под администратором.