Как включить функции WordPress в пользовательский .php-файл?

Как включить функции WordPress в пользовательский .php-файл?

В деталях: у меня есть каталог под моей темой (Constructor) с именами отчетов. Они содержат .php-файлы, которые генерируют отчеты из данных с сайта с DOMPDF для загрузки. Для этого я хотел бы использовать функции, которые предоставляет механизм WordPress, например get_the_author_meta( 'user_firstname', $user_id ) . Если я использую их, я получаю (естественно) следующую ошибку:

 Fatal error: Call to undefined function get_the_author_meta() in ROOT/public_html/wp-content/themes/constructor/reports/testreport.php on line 15 

Мне повезло, что мне нужно включить wp-blog-header.php. Я использую require_once("../../../../wp-blog-header.php"); , С этим я получаю следующую ошибку 404:

 No webpage was found for the web address: ROOT/wp-content/themes/constructor/reports/testreport.php 

(Требование указывает на правильный путь. Если я возится с ним, я получаю предупреждение: require_once (../../../ wp-blog-header.php): не удалось открыть поток … Таким образом, путь должен быть верным.)

Есть что-то, что я пропускаю? Почему я не могу включить этот wp-файл? Каков правильный метод включения функций wp?

Спасибо за помощь, Sziro

Ты на правильном пути. Попробуйте это вместо этого:

 require_once("../../../../wp-load.php"); 

Более профессиональный способ без точек, если WordPress был корнем документа:

 require($_SERVER['DOCUMENT_ROOT'].'/wp-load.php'); 
 require_once(dirname(__FILE__) . '/options.php'); 

Это лучший способ включить файл в wordpress

Хорошо, если у кого-то установлены более новые версии PHP (ver> = 5.5.x), они также могут попробовать следующий код в корневом скрипте в самом каталоге сайта WordPress:

 <?php define("WP_ROOT", __DIR__); define("DS", DIRECTORY_SEPARATOR); require_once WP_ROOT . DS . "wp-load.php"; 

Или

 <?php define("WP_ROOT", __DIR__); define("DS", DIRECTORY_SEPARATOR); require_once WP_ROOT . DS . "wp-blog-header.php"; 

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

Надеюсь, это поможет кому-то.