WordPress
get_home_path ()
Ricerca…
introduzione
Ottieni il percorso assoluto del filesystem nella root dell'installazione di WordPress.
Parametri
Parametro | Dettagli |
---|---|
Nessuna | Questa funzione non accetta alcun parametro. |
Osservazioni
Differenza importante tra get_home_path()
e ABSTPATH
Tieni presente la differenza tra ABSPATH
e get_home_path()
se WordPress è installato in una sottocartella.
La funzione get_home_path()
restituirà sempre un percorso senza la sottocartella:
- http://www.example.com - / var / www / htdocs / example
- http://www.example.com/wp - / var / www / htdocs / example
Questo è il modo in cui differisce da ABSPATH
, che restituirà valori diversi:
- http://www.example.com - / var / www / htdocs / example
- http://www.example.com/wp - / var / www / htdocs / example / wp
ABSPATH
è definito per la prima volta in wp-load.php
che si trova in /var/www/htdocs/example/wp/wp-load.php
quindi da qui ABSPATH
prenderà la sua definizione.
get_home_path()
controlla se site_url
e home_url
differiscono e rimuove la sottostringa dal percorso. Altrimenti restituisce il valore 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 );
}
Usandolo nel tuo codice
La chiamata a get_home_path()
deve essere eseguita in un contesto in cui wp-admin/includes/file.php
è già stato incluso.
Ad esempio, utilizzando get_home_path()
all'interno admin_init
va bene, ma usarlo all'interno di init
non lo è e causerà un errore fatale di PHP:
Call to undefined function get_home_path()
Questo file viene incluso solo all'interno del contesto di amministrazione (dashboard), se ne hai assolutamente bisogno al di fuori di questo contesto dovrai includere il file te stesso prima di chiamare la funzione:
require_once(ABSPATH . 'wp-admin/includes/file.php');
uso
$path = get_home_path();
Valore di ritorno:
string
Percorso completo del file system alla radice dell'installazione di WordPress, anche se è installato in una sottocartella.
Esempio:
/var/www/htdocs/example