Как загрузить WordPress на странице вне WP?
Я хочу использовать функцию get_option()
WordPress в одном из файлов моей темы, который не связан с WP, он просто расположен в той же директории, что и другие файлы темы. Мне нужен этот файл для дополнительных действий, связанных с IPN PayPal, но мне требуются некоторые значения из таблицы опций WordPress, которые должны вызываться на этой странице для её работы. Я знаю, что не могу просто использовать get_option()
, так как этот файл игнорируется WordPress. Есть ли какой-то подход, позволяющий включить некоторые части WordPress в мою тему, чтобы эта функциональность работала только здесь?

Самый короткий способ — загрузить файл wp-load.php
и прервать загрузку движка шаблонов (Примечание: это невозможно, если вы загружаете файл заголовка, как это часто встречается в интернете).
# Движок шаблонов не нужен
define( 'WP_USE_THEMES', false );
# Загружаем ядро WordPress
// Предполагаем, что мы в поддиректории: "~/wp-content/plugins/current_dir"
require_once( '../../../wp-load.php' );

Есть ли больше документации по WP_USE_THEMES
, чем https://codex.wordpress.org/The_Loop ? :)

@jave.web Конечно: Поиск по исходному коду между файлами.

Это должно работать на любой установке WordPress:
<?php
function load_wp_load() {
$wp_did_header = true;
require_once($_SERVER['DOCUMENT_ROOT'] . '/index.php');
$matches = preg_grep('/wp-blog-header.php/', get_included_files());
if (!empty($matches)) {
$abspath = dirname(reset($matches)) . '/';
define('ABSPATH', $abspath);
require_once(ABSPATH . 'wp-load.php');
}
}
?>
