WordPress
get_home_path()
サーチ…
前書き
WordPressインストールのルートへの絶対ファイルシステムパスを取得します。
パラメーター
パラメータ | 詳細 |
---|---|
無し | この関数はパラメータを受け付けません。 |
備考
get_home_path()
とABSTPATH
重要な違い
サブフォルダに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
がその定義を取る場所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
がすでに含まれているコンテキストで行う必要があります。
たとえば、 admin_init
フック内でget_home_path()
を使用するのは問題ありませんが、 init
内でそれを使用するとPHPの致命的なエラーが発生します。
Call to undefined function get_home_path()
このファイルはadmin(ダッシュボード)コンテキスト内からのみ取得されます。このコンテキスト外で絶対に必要とする場合は、関数を呼び出す前に自分でファイルをインクルードする必要があります:
require_once(ABSPATH . 'wp-admin/includes/file.php');
使用法
$path = get_home_path();
戻り値:
string
サブフォルダにインストールされていても、WordPressインストールのルートに完全なファイルシステムパス。
例:
/var/www/htdocs/example