Использование функционала WordPress вне его инсталляции (подключаем ядро WordPress)

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

Самый минимальный вариант:

Скопировано
define( 'SHORTINIT', true );
require_once( $_SERVER['DOCUMENT_ROOT'] . '/wp-load.php' );
Показать код

Использует примерно 810 208 байт памяти. При такой загрузке среды будет работать очень мало функций WP, но зато можно работать с базой данных.

Средний вариант:

Скопировано
require_once( $_SERVER['DOCUMENT_ROOT'] . '/wp-load.php' );
Показать код

Использует примерно 17 184 104 байт памяти.

И максимальный по функционалу и размеру загружаемых файлов вариант:

Скопировано
require_once( $_SERVER['DOCUMENT_ROOT'] . '/wp-blog-header.php' );
Показать код

Использует примерно 17 238 456 байт памяти.

Цифры используемой памяти для каждого сервера и даже для каждого запуска скрипта будут отличаться. Они приведены просто для наглядности.

Во всех случаях в строке require_once должен быть указан полный путь на сервере до соответствующего файла загрузки среды WP. Иногда этот полный путь лучше получить так:

Скопировано
require_once( explode( 'wp-content', __DIR__ )[0] . 'wp-load.php' );
Показать код

В зависимости от того, какой функционал WordPress вы собираетесь использовать в своем PHP-скрипте, вам может подойти тот или иной вариант. Пробуйте их по очереди, начиная с минимального.

 

Если на вашем сервере установлен WP-CLI, то можно не заморачиваться с загрузкой среды WP из PHP-скрипта, а просто запустить его из консоли такой командой:

wp eval-file my-script.php