WordPress как на ладони
wordpress jino

Константы WordPress

WordPress настраивается в админ-панели или используя хуки (фильтры, события), а также WordPress можно настраивать, используя PHP константы.

Вы наверняка не раз использовали константы в файле wp-config.php, например:

define('WPLANG', 'ru_RU'); // указываем файл локализации;
define('EMPTY_TRASH_DAYS', false); // отключаем корзину;
define('WP_POST_REVISIONS', false); // отключаем ревизии записей;
define('DISABLE_WP_CRON', true); // отключаем работу cron;
define('AUTOSAVE_INTERVAL', 120); // увеличиваем интервал автосохранения;
// и т.д.

Также константы очень могут пригодится при написании плагинов. Например, когда нужно получить путь к каталогу плагинов, можно использовать константу WP_PLUGIN_DIR, а чтобы получить УРЛ на каталог плагинов, можно использовать константу WP_PLUGIN_URL. Это удобно, потому что некоторые пользователи могут изменить каталог плагинов, указав константу WP_PLUGIN_DIR, и ваш плагин не будет работать, если вы указали абсолютный путь без использования константы.

Способов применения констант много и иметь под рукой их полный список - удобно.

В этом посте большая часть констант, которые использует WordPress. Список будет постоянно обновляться. Если вдруг вам есть что добавить к описанию или вы не нашли здесь константу о которой знаете, пишите в комментарии пожалуйста.

Оглавление:

Базовые

WP_AUTO_UPDATE_CORE

Управляет авто-обновлением ядра:

  • true - включить все обновления - версии разработчиков, незначительные и значительные релизы.
  • false - отключить все обновления ядра - версии разработчиков, незначительные и значительные релизы.
  • 'minor' - включить обновления только для незначительных релизов (внутри ветки).

Может быть: true | false | 'minor'

AUTOMATIC_UPDATER_DISABLED

Авто-обновление движка, введенное в версии 3.7. По умолчанию константа не определена (false - авто-обновление включено). Чтобы отключить авто-обновление установите эту константу, укажите ей значение true:

define( 'AUTOMATIC_UPDATER_DISABLED', true );

Может быть: true | false

AUTOSAVE_INTERVAL
Интервал автосохранения постов при редактировании.
Может быть: время в секундах
По умолчанию: 60
CORE_UPGRADE_SKIP_NEW_BUNDLED
true - затрагивать новые группы файлов (плагины или темы) при обновлении.
Может быть: true | false
DISABLE_WP_CRON
Деактивирует работу cron (планировщик заданий) в WordPress.
Может быть: true
EMPTY_TRASH_DAYS
Количество дней до удаления записи (страница, вложение, пост, комментарий и т.д.) из корзины. Ставим false в wp-config.php, если нужно отключить корзину, записи будут удаляться при удалении безвозвратно.
Может быть: количество дней
По умолчанию: 30
IMAGE_EDIT_OVERWRITE
false - будут создаваться новые изображения при редактировании - копии оригинала. true - старое изображение будет перезаписано.
Может быть: true | false
MEDIA_TRASH
Функция «корзины» для медиафайлов. true - корзина работает. false - не работает.
Может быть: true | false
По умолчанию: false
WPLANG
Определяет файл локализации WordPress. Нужен для перевода сайта на нужный язык.
Может быть: ru_RU (для русского)
WP_DEFAULT_THEME
Устанавливает тему для новых сайтов по умолчанию. И используется как запасной вариант для сломанных тем WordPress.
Может быть: название темы
По умолчанию: twentyeleven
WP_CRON_LOCK_TIMEOUT
Устанавливает минимальный интервал времени, между выполнениями cron запросов. С версии 3.3.
Может быть: время в секундах
По умолчанию: 60
WP_MAIL_INTERVAL
Определяет интервал времени, в течении которого только один mail-запрос может быть выполнен.
Может быть: время в секундах
По умолчанию: 300
WP_POST_REVISIONS

Ревизии записей:

  • true - включены
  • false - отключены
  • число - число ревизий записи. 5 - запись будет содержать максимально 5 ревизий.

Может быть: true | false | количество в цифрах
По умолчанию: true

WP_MAX_MEMORY_LIMIT
Максимальное ограничение памяти для некоторых функций WordPress.
По умолчанию: 256M
WP_MEMORY_LIMIT
Ограничение памяти на выполнение скриптов WordPress.
По умолчанию: 32M, для Multisite 64M

Статусы

APP_REQUEST
Определена, при выполнении запроса Atom Publishing Protocol.
Может быть: true
COMMENTS_TEMPLATE
Определена, когда загружается шаблон комментариев.
Может быть: true
DOING_AJAX
Определена при выполнении AJAX запроса.
Может быть: true
DOING_AUTOSAVE
Определена при автосохранении записи.
Может быть: true
DOING_CRON
Определена, если выполняется cron задача (задача по расписанию).
Может быть: true
IFRAME_REQUEST
Определена при выполнении IFRAME запроса.
Может быть: true
IS_PROFILE_PAGE
Определена, если вы находитесь на странице редактирования профиля в админ-панели.
Может быть: true
SHORTINIT
true - останавливает загрузку основной части WordPress. Можно использовать, если нужны только базовые функции. Подключение к БД будет уже установлено ($wpdb будет определена). Фильтры также, уже определены. Константа вызывается в файле wp-settings.php.
Может быть: true
WP_ADMIN
Определена, если вы находитесь в админ-панели WordPress.
Может быть: true
WP_BLOG_ADMIN
Будет определена, если выполняется запрос в /wp-admin/.
Может быть: true
WP_IMPORTING
Определена при импорте данных WordPress.
Может быть: true
WP_INSTALLING
Будет определена, во время новой инсталляции или обновлении.
Может быть: true
WP_INSTALLING_NETWORK
Определена при установке сети или при запросе к network admin. С версии 3.3. До этого была: WP_NETWORK_ADMIN_PAGE.
Может быть: true
WP_LOAD_IMPORTERS
Определена при обзоре импорта в панели управления (Tools -> Importer).
Может быть: true
WP_NETWORK_ADMIN
Определена на странице: /wp-admin/network/.
Может быть: true
WP_REPAIRING
Определена на странице: /wp-admin/maint/repair.php.
Может быть: true
WP_SETUP_CONFIG
Определена при установке или конфигурации WP.
Может быть: true
WP_UNINSTALL_PLUGIN

Определена во время удаления плагина. Для удаления плагина создается файл uninstall.php в его папке, при удалении срабатывает код из этого файла, так вот чтобы не возникло никаких неожиданностей в этом файле нужно делать проверку на существование константы WP_UNINSTALL_PLUGIN - она должна быть определена во время удаления плагина.

Пример проверки:

if( ! defined('WP_UNINSTALL_PLUGIN') exit();
// код удаления прибывания плагина на сайте

Может быть: true

WP_USER_ADMIN
Определена на страницах: /wp-admin/user/.
Может быть: true
XMLRPC_REQUEST
Определена при любом XML-RPC запросе.
Может быть: true

Пути, каталоги, ссылки

ABSPATH
Путь к корневому каталогу WordPress со слэшем на конце. Путь будет от корня сервера, например: C:/sites/wptest.ru/www/.
По умолчанию: путь к каталогу с файлом wp-load.php
WPINC
Название каталога wp-includes. Изменить эту константу нельзя.
По умолчанию: wp-includes
WP_LANG_DIR
Абсолютный путь к каталогу с языковыми файлами.
По умолчанию: WP_CONTENT_DIR/languages или WP_CONTENT_DIR WPINC /languages
WP_PLUGIN_DIR
Абсолютный путь к каталогу плагинов.
По умолчанию: WP_CONTENT_DIR /plugins
WP_PLUGIN_URL
URL каталога плагинов.
По умолчанию: WP_CONTENT_URL /plugins
WP_CONTENT_DIR
Абсолютный путь к каталогу wp-content. Пример: C:/sites/wptest.ru/www/wp-content
По умолчанию: ABSPATH/wp-content
WP_CONTENT_URL
URL до каталога wp-content. Например: http://site.ru/wp-content
По умолчанию: {URL сайта}/wp-content
WP_HOME
URL вашего WordPress блога. Если установить эту константу в wp-config.php, то пользователи не смогут случайно изменить адрес блога в настройках: настройки->основные. Также, полезно если файлы WordPress лежат в подкаталоге, тогда адрес блога будет WP_HOMEhttp://yourdomain.com, а адрес до каталога файлов этого блога будет WP_SITEURLhttp://yourdomain.com/blog.
WP_SITEURL
URL корневого каталога WordPress, где лежат файлы WordPress.
WP_TEMP_DIR
Абсолютный путь к каталогу для временных файлов. Обычно такие файлы записываются при обновлении плагинов и движка.
WPMU_PLUGIN_DIR

Абсолютный путь к каталогу плагинов типа «Must Use Plugins». Например: C:/sites/wptest.ru/www/wp-content/mu-plugins.

По умолчанию: WP_CONTENT_DIR/mu-plugins

WPMU_PLUGIN_URL
URL каталога плагинов типа «Must Use Plugins»
По умолчанию: WP_CONTENT_URL /mu-plugins

База данных

DB_CHARSET
Определяет кодировку (charset) базы данных
Может быть: см. докуметацию MySQL
По умолчанию: utf8
DB_COLLATE
Определяет тип сравнения (collation) для базы данных
Может быть: см. докуметацию MySQL
По умолчанию: utf8_general_ci
DB_HOST
Определяет хост (host) базы данных
Может быть: IP адрес, домен и/или порт
По умолчанию: localhost
DB_NAME
Определяет имя базы данных
Может быть: имя базы данных
DB_PASSWORD
Определяет пароль к базе данных
Может быть: пароль к базе данных
DB_USER
Определяет пользователя базы данных
Может быть: ник пользователя
WP_ALLOW_REPAIR
Позволяет автоматически восстанавливать и оптимизировать таблицы базы данных используя /wp-admin/maint/repair.php.
Может быть: true
CUSTOM_USER_TABLE
Позволяет определить собственную таблицу «user»
Может быть: имя таблицы
CUSTOM_USER_META_TABLE
Позволяет определить собственную таблицу «user meta»
Может быть: имя таблицы

Шаблон

BACKGROUND_IMAGE
Определяет фоновое изображение по умолчанию.
HEADER_IMAGE
Определяет изображение заголовка (шапки) по умолчанию.
HEADER_IMAGE_HEIGHT
Определяет высоту изображения заголовка (шапки).
HEADER_IMAGE_WIDTH
Определяет ширину изображения заголовка (шапки).
HEADER_TEXTCOLOR
Определяет цвет текста заголовка (шапки).
NO_HEADER_TEXT
Включает или отключает поддержку текста заголовка (шапки).
Может быть: true | false
STYLESHEETPATH
Определяет абсолютный путь к таблице стилей (stylesheet) текущей темы.
TEMPLATEPATH
Определяет абсолютный путь к файлам шаблона текущей темы.
WP_USE_THEMES
Включает или отключает загрузку тем.
Может быть: true | false

Файловая система и соединения

FS_CHMOD_DIR
Определяет права доступа для каталогов
Может быть: см. докуметацию PHP
По умолчанию: 0755
FS_CHMOD_FILE
Определяет права доступа для файлов
Может быть: см. докуметацию PHP
По умолчанию: 0644
FS_CONNECT_TIMEOUT
Определяет таймаут для создания соединения
Может быть: время в секундах
По умолчанию: 30
FS_METHOD
Определяет метод соединения с файловой системой
Может быть: direct | ssh | ftpext | ftpsockets
FS_TIMEOUT
Определяет таймаут после потери соединения
Может быть: время в секундах
По умолчанию: 30
FTP_BASE
Путь к корневому каталогу WordPress
По умолчанию: ABSPATH
FTP_CONTENT_DIR
Путь к каталогу /wp-content/
По умолчанию: WP_CONTENT_DIR
FTP_HOST
Определяет хост для FTP
Может быть: IP адрес, домен и/или порт
FTP_LANG_DIR
Путь к каталогу с языковыми файлами
По умолчанию: WP_LANG_DIR
FTP_PASS
Определяет пароль для FTP
FTP_PLUGIN_DIR
Путь к каталогу плагинов
По умолчанию: WP_PLUGIN_DIR
FTP_PRIKEY
Определяет private key для SSH
FTP_PUBKEY
Определяет public key для SSH
FTP_SSH
Включает или отключает SSH
Может быть: true | false
FTP_SSL
Включает или отключает SSL
Может быть: true | false
FTP_USER
Определяет имя пользователя для FTP
WP_PROXY_BYPASS_HOSTS
Позволяет определить адреса, которые не должны соединяться через прокси
Может быть: `www.somesite.net, .somesite.org`*
WP_PROXY_HOST
Определяет адрес прокси
Может быть: IP адрес или домен
WP_PROXY_PASSWORD
Определяет пароль для прокси
WP_PROXY_PORT
Определяет порт для прокси
WP_PROXY_USERNAME
Определяет имя пользователя для прокси
WP_HTTP_BLOCK_EXTERNAL
Позволяет блокировать внешние запросы
Может быть: true | false
WP_ACCESSIBLE_HOSTS
Если определена WP_HTTP_BLOCK_EXTERNAL, то можно добавить хосты, которые не будут блокироваться (белый список)
Может быть: `www.somesite.net, .somesite.org`*

Отладка (поиск багов)

SAVEQUERIES

Включает или отключает запись запросов к базе данных в массив ($wpdb->queries).

Добавьте следующий код в файл wp-config.php:

define( 'SAVEQUERIES', true );

Затем в footer.php вашей темы вставьте код, который выведет все запросы:

if ( current_user_can( 'administrator' ) ) {
	global $wpdb;
	echo "<pre>";
	print_r( $wpdb->queries );
	echo "</pre>";
}

Может быть: true | false

SCRIPT_DEBUG
Включает или отключает загрузку упакованных файлов CSS и JavaScript.
Может быть: true | false
WP_DEBUG
Включает или отключает режим отладки WordPress. Подробнее про WP_DEBUG
Может быть: true | false
По умолчанию: false
WP_DEBUG_DISPLAY
Включает или отключает вывод ошибок на экран.
Может быть: true | false | null
По умолчанию: true
WP_DEBUG_LOG
Включает или отключает запись ошибок в файл /wp-content/debug.log
Может быть: true | false
По умолчанию: false

Кэширование и сжатие скриптов

WP_CACHE
Если определена, то WordPres будет пытаться загрузить файл /wp-content/advanced-cache.php при загрузке страницы.
Может быть: true | false
По умолчанию: false
COMPRESS_CSS
Включает / отключает сжатие таблиц стилей (stylesheets).
Может быть: true | false
COMPRESS_SCRIPTS
Включает / отключает компрессию файлов JavaScript.
Может быть: true | false
CONCATENATE_SCRIPTS

Включает / отключает объединение файлов JavaScript или CSS перед сжатием.

Заметка: для ускорения загрузки админ-панели все файлы JS объединятся в один. Если у вас не работает Javascript в адмнике, то можете попробовать отключить эту функцию, добавив этот код в wp-config.php:

define( 'CONCATENATE_SCRIPTS', false );

Может быть: true | false

ENFORCE_GZIP
Включает / отключает сжатие gzip
Может быть: true | false

Защита и куки

ADMIN_COOKIE_PATH
Путь к каталогу /wp-admin/
По умолчанию: SITECOOKIEPATH wp-admin или для Мульти-сайта подкаталог SITECOOKIEPATH
ALLOW_UNFILTERED_UPLOADS
Позволяет админам делать загрузки без фильтрования
Может быть: true
AUTH_COOKIE
Имя Cookie для авторизации
По умолчанию: wordpress_ COOKIEHASH
AUTH_KEY
Секретный ключ
Может быть: текстовый ключ
AUTH_SALT
Добавка к секретному ключу
Может быть: текстовый ключ
COOKIEHASH
Хэш для генерации имен cookie
COOKIEPATH
Путь к корневому каталогу WordPress.
По умолчанию: домашний URL без http(s)://
COOKIE_DOMAIN
Домен который будет использоваться в setcookie() и для которого будут устанавливаться куки. По умолчанию это текущий домен, можно указать конкретный домен, например .site.ru, тогда куки будут действительны для домена site.ru и всех поддоменов: foo.site.ru, bar.site.ru
По умолчанию: false, а для MU сборки ``.site.ru``, где site.ru основной домен сети сайтов.
CUSTOM_TAGS
Позволяет переопределять список защитных меток HTML. Смотреть в /wp-includes/kses.php.
Может быть: true | false
По умолчанию: false
DISALLOW_FILE_EDIT
Позволяет запретить редактирование тем и плагинов с использованием редактора WordPress.
Может быть: true
DISALLOW_FILE_MODS

Запрещает любое редактирование файлов в файловой системе WordPress (кроме директории для загрузок wp-content/uploads):

define( 'DISALLOW_FILE_MODS', true );

Учтите, что установив эту директиву вы больше не сможете устанавливать и обновлять темы и плагины через панель администратора. Вам придётся это делать вручную с помощью FTP или SSH.

Может быть: true

DISALLOW_UNFILTERED_HTML

Позволяет запретить не фильтрованные HTML для всех пользователей, включая админа. Некоторые привилегии можно отключить на уровне
конфигурационного файла wp-config.php, например можно запретить всем пользователям (включая администраторов и сетевых администраторов) публиковать не фильтрованный HTML с помощью:

define( 'DISALLOW_UNFILTERED_HTML', true );

Может быть: true

FORCE_SSL_ADMIN
Активирует SSL для админки и в панели управления.
Может быть: true | false
По умолчанию: false
FORCE_SSL_LOGIN
Активирует SSL для страницы входа.
Может быть: true | false
По умолчанию: false
LOGGED_IN_COOKIE
Имя Cookie для авторизации.
По умолчанию: wordpress_logged_in_ COOKIEHASH
LOGGED_IN_KEY
Секретный ключ
Может быть: текстовый ключ
LOGGED_IN_SALT
Секретный ключ
Может быть: текстовый ключ
NONCE_KEY
Секретный ключ
Может быть: текстовый ключ
NONCE_SALT
Секретный ключ
Может быть: текстовый ключ
PASS_COOKIE
Имя Cookie для пароля
По умолчанию: wordpresspass_ COOKIEHASH
PLUGINS_COOKIE_PATH
Путь к каталогу плагинов
По умолчанию: WP_PLUGIN_URL без http(s)://
SECURE_AUTH_COOKIE
Имя Cookie для SSL авторизации
По умолчанию: wordpress_sec_ COOKIEHASH
SECURE_AUTH_KEY
Секретный ключ
Может быть: текстовый ключ
SECURE_AUTH_SALT
Секретный ключ
Может быть: текстовый ключ
SITECOOKIEPATH
Путь к сайту
По умолчанию: URL сайта без http(s)://
TEST_COOKIE
Имя Cookie для тестового cookie
По умолчанию: wordpress_test_cookie
USER_COOKIE
Имя Cookie для пользователей
По умолчанию: wordpressuser_ COOKIEHASH

Мульти-сайты

ALLOW_SUBDIRECTORY_INSTALL
Позволяет установить Мульти-сайт в подкаталог (поддомен).
Может быть: true
BLOGUPLOADDIR
Абсолютный путь к каталогу «upload» конкретного блога.
По умолчанию: WP_CONTENT_DIR /blogs.dir/{ID блога}/files/
BLOG_ID_CURRENT_SITE
ID блога основного сайта.
По умолчанию: 1
DOMAIN_CURRENT_SITE
Домен основного сайта.
По умолчанию: домен
DIEONDBERROR
Если определена, то ошибки базы данных будут выводиться на экран.
Может быть: true
ERRORLOGFILE
Если определена, то ошибки базы данных будут записываться в лог-файл
Может быть: абсолютный путь к файлу с доступом на запись
MULTISITE
Будет определена, если используется режим Мульти-сайт.
Может быть: true
NOBLOGREDIRECT
Определяет URL сайта на который WordPress будет перенаправлять запросы, если регистрация закрыта или сайт не существует.
Может быть: %siteurl% для главного сайта или специфический URL
PATH_CURRENT_SITE
Путь к основному сайту
UPLOADBLOGSDIR
Путь к базовому каталогу upload, в зависимости от ABSPATH
По умолчанию: wp-content/blogs.dir
SITE_ID_CURRENT_SITE
Network ID главного сайта
По умолчанию: 1
SUBDOMAIN_INSTALL
Определяет, идет ли инсталляция в поддомен или нет.
Может быть: true | false
SUNRISE
Если определена, то WordPres будет загружать файл /wp-content/sunrise.php
Может быть: true
UPLOADS
Путь к каталогу upload специфическому для сайта, зависит от ABSPATH
По умолчанию: UPLOADBLOGSDIR /{blogid}/files/
WPMU_ACCEL_REDIRECT
Включает или отключает поддержку для X-Sendfile Header
Может быть: true | false
По умолчанию: false
WPMU_SENDFILE
Включает или отключает поддержку для X-Accel-Redirect Header
Может быть: true | false
По умолчанию: false
WP_ALLOW_MULTISITE
Если определена, то будет доступна функция Мульти-сайт (Tools -> Network Setup).
Может быть: true

Константы времени

Эти константы сделаны для удобства, когда нужно установить интервал времени в секундах:

MINUTE_IN_SECONDS
Минута в секундах - 60
HOUR_IN_SECONDS
Час в секундах - 60*60
DAY_IN_SECONDS
День в секундах - 60*60*24
WEEK_IN_SECONDS
Неделя в секундах - 60*60*24*7
YEAR_IN_SECONDS
Год в секундах - 60*60*24*7*365

-

Источник 1, источник 2

Константы WordPress 7 комментариев
  • Дмитрий1946 cайт: www.youtube.com/c/wpplus

    Не понимаю, зачем нужен WPLANG? Прописал я русский язык, но сайт так и остался на английском. Зашёл в общие настройки, в самом конце есть выпадающий список для выбора языка, указал русский и всё перевелось. Если честно, это всё портит. Хотел с помощью переменных для разных категорий на сайте указывать какой язык перевода подгружать. Но из-за этого миссия провалена! sorry

    Ответить3.1 года назад #
    • Kama4662

      Я буквально вчера столкнулся с этим вопросом и также был удивлен, что константа перебивается опцией WPLANG.

      Еще она перебивается глобальной переменной $wp_local_package, которая устанавливается жестко в wp-includes/version.php для не англ. сборок движка. Этот файл используется как я понял во время всяких обновлений, импорта данных когда нет возможности получить настройки или константу...

      В вашем случае нужно использовать фильтр: http://wp-kama.ru/hook/locale

      П.С. Было бы не плохо, если бы вы перенесли этот вопрос в вопросы...

      2
      Ответить3.1 года назад #
      • campusboy1946 cайт: www.youtube.com/c/wpplus

        Рад, что последовал ответ! smile С функцией "Задать вопрос" ознакомился благодаря этому комментарию, теперь буду там публиковать их, спасибо! А то вот начал осваивать режим мультисайта, а также изучать шаблоны, готовые к переводу, PO и MO файлы. В общем, пока ради учёбы. Поле это не паханное в рунете, к сожалению. Спасибо за ссылку, сейчас протестирую!

        Ответить3.1 года назад #
  • Алексей

    Здравствуйте!
    Неизвестные мне константы:
    define('IMSANITY_DEFAULT_MAX_WIDTH',1300);
    define('IMSANITY_DEFAULT_MAX_HEIGHT',1100);
    Поиск мне не помог, может Вы подскажите что это?!
    Заранее, Спасибо! smile

    Ответитьгод назад #
  • Marie

    не работает define('EMPTY_TRASH_DAYS', 1 );

    Есть какие-то нюансы использования? Тестирую на локалке, может в этом дело?

Здравствуйте, !

Ваш комментарий