WordPress
get_home_path ()
Zoeken…
Invoering
Haal het absolute bestandssysteempad naar de root van de WordPress-installatie.
parameters
Parameter | Details |
---|---|
Geen | Deze functie accepteert geen parameters. |
Opmerkingen
Belangrijk verschil tussen get_home_path()
en ABSTPATH
Houd rekening met het verschil tussen ABSPATH
en get_home_path()
als u WordPress in een submap hebt geïnstalleerd.
De functie get_home_path()
retourneert altijd een pad zonder de submap:
- http://www.example.com - / var / www / htdocs / example
- http://www.example.com/wp - / var / www / htdocs / example
Dit is hoe het verschilt van ABSPATH
, dat verschillende waarden zal retourneren:
- http://www.example.com - / var / www / htdocs / example
- http://www.example.com/wp - / var / www / htdocs / example / wp
ABSPATH
wordt eerst gedefinieerd in wp-load.php
die zich bevindt op /var/www/htdocs/example/wp/wp-load.php
vandaar dat dit is waar ABSPATH
zijn definitie van zal nemen.
get_home_path()
controleert of site_url
en home_url
verschillen en verwijdert de substring uit het pad. Anders wordt de waarde 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 );
}
Gebruik het in uw code
Het aanroepen van get_home_path()
moet gebeuren in een context waarin wp-admin/includes/file.php
al is opgenomen.
Het gebruik van get_home_path()
binnen de hook admin_init
is bijvoorbeeld prima, maar het gebruik ervan binnen de init
is niet en zal resulteren in een fatale PHP-fout:
Call to undefined function get_home_path()
Dit bestand wordt alleen opgenomen vanuit de admin (dashboard) context, als je het absoluut buiten deze context nodig hebt, moet je het bestand zelf opnemen voordat je de functie aanroept:
require_once(ABSPATH . 'wp-admin/includes/file.php');
Gebruik
$path = get_home_path();
Winstwaarde:
string
Volledig bestandssysteempad naar de root van de WordPress-installatie, zelfs als deze in een submap is geïnstalleerd.
Voorbeeld:
/var/www/htdocs/example