私の理解するところでは、site_url()
はwordpressのコアファイルがある場所を返します。
したがって、私のブログがhttp://example.com/blog
でホストされている場合、site_url()
はhttp://example.com/blog
を返します。
しかし、home_url()
はどう違うのでしょうか。私にとっては、home_url()
は同じものを返します:http://example.com/blog
それが正しければ、ワードプレスにhttp://example.com/
を返させることができますか?
あなたは同時に二つの質問をしています。
home_url()
とsite_url()
の違いは何ですか?ここに答えがあり、私はWordPressのコア開発者であるAndrew Nacinに確認し、Andrewが私に言ったことを確認するためにいくつかのサーバーテストを実行しました。
一般> wp-adminの設定で、home_url()
は "Site Address(URL)"というラベルのフィールドを参照します。 紛らわしいですね。 ええ、それは "Site Address"と言っているのであなたはsite_url()
を仮定するかもしれません、しかし あなたは間違っているでしょう 。あなた自身のテストを実行すればわかります。 (あなたのテーマのfunctions.phpの先頭にsite_url()
とhome_url()
の値を持つecho H1
フィールドを一時的に削除することができます。)
一方、site_url()
はGeneral> Settingsの中の "WordPress Address(URL)"というラベルの付いたフィールドを参照します。
ですから、URL上のプラグインのフォルダパスを呼び出して画像を読み込む、テーマのフォルダパスを呼び出して画像を読み込むなど、物理的なパスがどこにあるかを参照したい場合は、実際には他の関数を使用してください。 plugins_url()
とget_template_directory_uri()
を見てください。
site_url()
は常に最後に/wp-admin
を付けることでサイトにアクセスできる場所になりますが、home_url()
は確実にこの場所になるとは限りません。
home_url()
は、General> Settingsの「Site Address(URL)」フィールドを設定してホームページを設定した場所です。
だから、私が私のブログをhttp://example.com/blog
に置き、そしてexample.com
が私がポートフォリオテーマを好むただの静的なサイトであるならば、これはあなたの質問に沿ったシナリオであろう。そのような場合、私はこのコードの断片を使うでしょう:
<?php
function getDomain() {
$sURL = site_url(); // WordPress function
$asParts = parse_url( $sURL ); // PHP function
if ( ! $asParts )
wp_die( 'ERROR: Path corrupt for parsing.' ); // replace this with a better error result
$sScheme = $asParts['scheme'];
$nPort = $asParts['port'];
$sHost = $asParts['Host'];
$nPort = 80 == $nPort ? '' : $nPort;
$nPort = 'https' == $sScheme AND 443 == $nPort ? '' : $nPort;
$sPort = ! empty( $sPort ) ? ":$nPort" : '';
$sReturn = $sScheme . '://' . $sHost . $sPort;
return $sReturn;
}
WPをディレクトリにインストールするが、サイトをホームドメインのホームにしたい場合は、メインのindex.phpファイルをドメインのルートに移動し、ディレクトリを指すようにrequireステートメントを編集する必要があります。
このプロセスの概要は次のとおりです。 WordPressに独自のディレクトリを付与する 。
あなたの2番目の質問に答えるには:
Q:それが正しければ、wordpressから http://example.com/ を返すことができますか?
WordPressに独自のディレクトリを与える の手順を踏まない限り、できません。これを使用することは、WordPressのコアファイルを/blog
または/WordPress
に配置してから、index.php
を自分のルートに配置することを意味します。
WordPressをそれ自身のディレクトリの中に置くことにしたなら、あなたはindex.php
に行くためにhome_url()
を使い、コアファイルなどを得るためにsite_url()
を使うでしょう。
参考文献:site_url
のコーデックスhome_url
のコーデックス
Wordpress自身のディレクトリを提供するためのコーデックス
site_url()
関数とhome_url()
関数は似ており、それらがどのように機能するかについて混乱を招く可能性があります。
site_url()
関数は、データベースのwp_options
テーブルにあるsiteurl
の値を取得します。
これはWordPressのコアファイルへのURLです。
あなたのコアファイルがあなたのWebサーバ上のサブディレクトリ/wordpress
に存在する場合、値はhttp://example.com/wordpress
になります。
home_url()
関数は、データベースのwp_options
テーブルにあるhome
の値を取得します。
これは、WordPress Webサイトを閲覧するために他のユーザーにアクセスしてもらいたいアドレスです。
WordPressのコアファイルが/wordpress
に存在していても、あなたのWebサイトのURLをhttp://example.com
にしたい場合は、homeの値をhttp://example.com
にしてください。