У меня есть веб-сайт, созданный 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
Предполагая, что это ваш буквальный код:
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 имеет «корневой путь», если вы не научите его лучше.
Как упоминалось в комментарии, 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');