Подтвердить что ты не робот

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

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

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

Неустранимая ошибка: вызов неопределенной функции get_the_author_meta() в ROOT/public_html/wp-content/themes/constructor/reports/testreport.php в строке 15

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

Веб-страница для этого адреса не найдена: ROOT/wp-content/themes/constructor/reports/testreport.php

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

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

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

4b9b3361

Ответ 1

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

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

Ответ 2

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

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

Ответ 3

require_once(dirname(__FILE__) . '/options.php');

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

Ответ 4

Хорошо, если у кого-то установлены более новые версии 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";

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

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

Ответ 5

Внешние файлы могут легко получить доступ к функциям WordPress. Вам просто нужно включить файл wp-load.php во внешний файл. Файл wp-load.php находится в корне вашей установки WordPress. Пример: предположим, что ваш файл test.php находится в корневом каталоге установки WordPress.

<?php
require_once('wp-load.php');
// Your custom code
?>

Источник: Как получить доступ к функциям WordPress во внешнем файле