Как разрешить require_once () для PHP-файла в WordPress

У меня есть веб-сайт, созданный WordPress, и я сделал несколько php-файлов, которые я хочу выполнить, и по какой-то причине мне требуется require_once (/wp-includes/class-phpass.php), но я получил сообщение Не удалось открыть Требуется ошибка, существует Файл htaccess в корневой папке, и он не существует в папке wp-includes, в которой содержится htaccess:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

так как решить эту проблему ?! , Спасибо

редактировать

мой WordPress не установлен в корневой папке, это как root / live

4

Решение

Предполагая, что это ваш буквальный код:

require_once('/wp-includes/class-phpass.php');

Не удивительно, что файл не может быть найден, так как require работает на уровне файловой системы, так что вам, вероятно, нужно что-то вроде /var/www/mysite/wp-includes/class-phpass.php вместо.

Вы должны быть в состоянии заставить это работать так:

require_once $_SERVER['DOCUMENT_ROOT'] . '/wp-includes/class-phpass.php';

Это вставляет текущий корневой путь веб-сайта перед подпутью. $_SERVER['DOCUMENT_ROOT'] по умолчанию единственное подобие PHP имеет «корневой путь», если вы не научите его лучше.

11

Другие решения

Как упоминалось в комментарии, require является локальной файловой системой — она ​​не обрабатывает правила htaccess.

Вы пытаетесь

require_once(/wp-includes/class-phpass.php);

это ищет в ваших машинах root для / wp-includes /

Это будет работать, если ваш wordpress установлен в document_root (burt не рекомендуется):

require_once($_SERVER['DOCUMENT_ROOT'] . '/wp-includes/class-phpass.php');

Но вы должны использовать это:

$install_path = get_home_path();
require_once($install_path. '/wp-includes/class-phpass.php');

как указано на этой странице кодекса: http://codex.wordpress.org/Function_Reference/get_home_path

Если вы создаете сценарии, которые должны использовать ядро ​​WordPress, но не выполняются изнутри самого WordPress, то вам нужно будет сделать следующее:

define('WP_USE_THEMES', false);
global $wp, $wp_query, $wp_the_query, $wp_rewrite, $wp_did_header;
require( $_SERVER['DOCUMENT_ROOT'] . '/path/to/wp-load.php');

$install_path = get_home_path();
require_once($install_path. '/wp-includes/class-phpass.php');
0

По вопросам рекламы [email protected]