## Функция GET_HOME_PATH()
Функция get_home_path() в WordPress возвращает абсолютный путь к корневому каталогу установки WordPress. Это полезно, если вам нужно узнать, где находятся файлы вашего сайта.
### Возврат значения
Функция возвращает строку — полный путь к корневой папке установки WordPress.
### Использование
Для вызова функции используйте следующий код:
```php
get_home_path();
Примеры
Пример 1: Получение пути
Предположим, что ядро WordPress установлено в подкаталоге wp. Вот как вы можете использовать функцию:
echo get_home_path();
echo ABSPATH;
echo $_SERVER['SCRIPT_FILENAME'];
echo $_SERVER['DOCUMENT_ROOT'];
/*
Здесь вывод будет примерно таким:
path/sites/site.com/www/
path/sites/site.com/www/wp/
path/sites/site.com/www/wp/wp-admin/options-permalink.php
path/sites/site.com/www
*/
Важно: Функция get_home_path() доступна только из админ-панели (backend) вашего сайта. Если вы попытаетесь вызвать ее на фронтальной части сайта, вы получите ошибку. Чтобы избежать этой ошибки, проверьте, что находитесь в админ-панели, вызвав функцию is_admin(), иначе вы получите сообщение об ошибке:
Fatal error: Uncaught Error: Call to undefined function get_home_path().
Для корректной работы функции убедитесь, что файл file.php подключен:
require_once ABSPATH . 'wp-admin/includes/file.php';
Пример 2: Получение пути к главной папке сайта
Этот каталог обычно содержит файлы wp-config.php и .htaccess. Допустим, вам нужно изменить файл .htaccess. Вы можете использовать следующий код:
require_once ABSPATH . 'wp-admin/includes/file.php';
require_once ABSPATH . 'wp-admin/includes/misc.php';
$home_path = get_home_path();
$htaccess_file = $home_path . '.htaccess';
/*
* Если файл не существует, проверяем, есть ли права на запись в директорию,
* а также имеем ли мы какие-либо правила. В противном случае проверяем права на запись в файл.
*/
if (
( ! file_exists($htaccess_file) && is_writable($home_path) ) ||
is_writable( $htaccess_file )
) {
$rules = '
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
';
$rules = array_filter( explode( "n", $rules ) );
$done = insert_with_markers( $htaccess_file, 'Мои пользовательские правила', $rules );
}
else {
echo '$htaccess_file не существует или закрыт для записи.';
}
Изменения в коде
Функция get_home_path() была добавлена в версии 1.5.0 WordPress. Вот как она выглядит в коде:
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_attached_file()get_parent_theme_file_path()get_template()wp_upload_dir()
Используйте эти функции для работы с файлами и папками в WordPress, чтобы упростить вашу работу.