WordPress
get_home_path ()
Поиск…
Вступление
Получите абсолютный путь файловой системы к корню установки WordPress.
параметры
параметр | подробности |
---|---|
Никто | Эта функция не принимает никаких параметров. |
замечания
Важное различие между get_home_path()
и ABSTPATH
Обратите внимание на разницу между ABSPATH
и get_home_path()
если у вас установлен WordPress во ABSPATH
get_home_path()
.
Функция get_home_path()
всегда возвращает путь без подпапки:
- http://www.example.com - / var / www / htdocs / example
- http://www.example.com/wp - / var / www / htdocs / example
Вот как он отличается от ABSPATH
, который будет возвращать разные значения:
- http://www.example.com - / var / www / htdocs / example
- http://www.example.com/wp - / var / www / htdocs / example / wp
ABSPATH
сначала определяется в wp-load.php
который будет расположен по адресу /var/www/htdocs/example/wp/wp-load.php
поэтому здесь ABSPATH
примет свое определение.
get_home_path()
проверяет, отличаются ли параметры site_url
и home_url
, и удаляет подстроку из пути. В противном случае возвращается значение ABSPATH
:
function get_home_path() {
$home = set_url_scheme( get_option( 'home' ), 'http' );
$siteurl = set_url_scheme( get_option( 'siteurl' ), 'http' );
if ( ! empty( $home ) && 0 !== strcasecmp( $home, $siteurl ) ) {
$wp_path_rel_to_home = str_ireplace( $home, '', $siteurl ); /* $siteurl - $home */
$pos = strripos( str_replace( '\\', '/', $_SERVER['SCRIPT_FILENAME'] ), trailingslashit( $wp_path_rel_to_home ) );
$home_path = substr( $_SERVER['SCRIPT_FILENAME'], 0, $pos );
$home_path = trailingslashit( $home_path );
} else {
$home_path = ABSPATH;
}
return str_replace( '\\', '/', $home_path );
}
Использование этого кода
Вызов get_home_path()
должен выполняться в контексте, в котором wp-admin/includes/file.php
уже включен.
Например, использование get_home_path()
в admin_init
отлично, но использование его внутри init
не является и приведет к фатальной ошибке PHP:
Call to undefined function get_home_path()
Этот файл включается только из контекста admin (dashboard), если вы абсолютно нуждаетесь в нем вне этого контекста, вам нужно будет включить файл непосредственно перед вызовом функции:
require_once(ABSPATH . 'wp-admin/includes/file.php');
использование
$path = get_home_path();
Возвращаемое значение:
string
Полный путь файловой системы к корню установки WordPress, даже если он установлен во вложенной папке.
Пример:
/var/www/htdocs/example