サーチ…


前書き

WordPressインストールのルートへの絶対ファイルシステムパスを取得します。

パラメーター

パラメータ詳細
無し この関数はパラメータを受け付けません。

備考

get_home_path()ABSTPATH重要な違い

サブフォルダにWordPressがインストールされている場合は、 ABSPATHget_home_path()の違いに注意してください。

get_home_path()関数は、常にサブフォルダのないパス返します。

これはABSPATHとどのように違うのですか。これは異なる値を返します:

ABSPATHは最初にwp-load.phpで定義されています。これは/var/www/htdocs/example/wp/wp-load.phpあります。したがって、これはABSPATHがその定義を取る場所ABSPATH

get_home_path()は、 site_urlhome_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



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow