WordPress
get_home_path ()
Szukaj…
Wprowadzenie
Uzyskaj bezwzględną ścieżkę systemu plików do katalogu głównego instalacji WordPress.
Parametry
Parametr | Detale |
---|---|
Żaden | Ta funkcja nie akceptuje żadnych parametrów. |
Uwagi
Ważna różnica między get_home_path()
i ABSTPATH
Należy pamiętać o różnicy między ABSPATH
a get_home_path()
jeśli WordPress jest zainstalowany w podfolderze.
Funkcja get_home_path()
zawsze zwraca ścieżkę bez podfolderu:
- http://www.example.com - / var / www / htdocs / example
- http://www.example.com/wp - / var / www / htdocs / example
W ten sposób różni się od ABSPATH
, który zwróci różne wartości:
- http://www.example.com - / var / www / htdocs / example
- http://www.example.com/wp - / var / www / htdocs / example / wp
ABSPATH
jest po raz pierwszy zdefiniowany w wp-load.php
który będzie umieszczony na /var/www/htdocs/example/wp/wp-load.php
stąd ABSPATH
zacznie swoją definicję.
get_home_path()
sprawdza, czy site_url
i home_url
różnią się, i usuwa podciąg ze ścieżki. W przeciwnym razie zwraca wartość 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 );
}
Używanie go w kodzie
Wywołanie get_home_path()
musi być wykonane w kontekście, w którym wp-admin/includes/file.php
został już uwzględniony.
Na przykład użycie get_home_path()
w haczyku admin_init
jest w porządku, ale użycie go w init
nie jest i spowoduje krytyczny błąd PHP:
Call to undefined function get_home_path()
Ten plik jest dołączany tylko w kontekście administratora (deski rozdzielczej), jeśli absolutnie potrzebujesz go poza tym kontekstem, musisz sam go dołączyć przed wywołaniem funkcji:
require_once(ABSPATH . 'wp-admin/includes/file.php');
Stosowanie
$path = get_home_path();
Zwracana wartość:
string
Pełna ścieżka systemu plików do katalogu głównego instalacji WordPress, nawet jeśli jest on zainstalowany w podfolderze.
Przykład:
/var/www/htdocs/example