home_url()とsite_url()の違いは何ですか
-
-
あなたは非常に重要な質問に対して一度に2つの質問をしています.「home_url()とsite_url()の違いは何ですか?」に対する答え「WordPressがインストールされているサブディレクトリなしでURLルートを返すようにするにはどうすればよいですか?」という質問とは異なります.You're asking two questions at once on a very important question. The answer to "What's the difference between home_url() and site_url()?" is different than the question, "How do I get WordPress to return the URL root without the subdirectory where it's installed?"
- 4
- 2012-04-29
- Volomike
-
これらのコーデックスガイドを確認してください:https://codex.wordpress.org/Editing_wp-config.php#WordPress_address_.28URL.29;https://codex.wordpress.org/Editing_wp-config.php#Blog_address_.28URL.29;http://codex.wordpress.org/Giving_WordPress_Its_Own_Directory#Using_a_pre-existing_subdirectory_installReview these codex guides: https://codex.wordpress.org/Editing_wp-config.php#WordPress_address_.28URL.29 ; https://codex.wordpress.org/Editing_wp-config.php#Blog_address_.28URL.29 ; http://codex.wordpress.org/Giving_WordPress_Its_Own_Directory#Using_a_pre-existing_subdirectory_install
- 0
- 2016-10-07
- Tara
-
5 回答
- 投票
-
- 2012-04-30
一度に2つの質問をします:
-
home_url()
とsite_url()
の違いは何ですか? - WordPressがインストールされているサブディレクトリなしでURLルートを返すようにするにはどうすればよいですか?
これが答えです.WordPressのコア開発者であるAndrewNacinに確認し、サーバーテストを実行してAndrewの話を確認しました.
質問#1
一般> wp-adminの設定では、
home_url()
は「サイトアドレス(URL)」というラベルの付いたフィールドを参照します. 紛らわしいですねええ、「サイトアドレス」と表示されているので、site_url()
と思われるかもしれませんが、間違っている.独自のテストを実行すると、表示されます. (テーマのfunctions.phpの上部にsite_url()
とhome_url()
の値を含むhome_url()
フィールドを一時的に削除できます. )一方、
site_url()
は、[一般]> [設定]の[WordPressアドレス(URL)]というラベルの付いたフィールドを参照します.したがって、URL上のプラグインのフォルダパスを呼び出して画像をロードしたり、テーマのフォルダパスを呼び出して画像をロードしたりするなど、物理パスがどこにあるかを参照する場合は、実際には他の関数を使用する必要がありますそれらについては、
plugins_url()
とget_template_directory_uri()
をご覧ください.site_url()
は常に、最後に/wp-admin
を追加してサイトにアクセスできる場所であり、home_url()
は確実にこの場所ではありません.home_url()
は、[一般]> [設定] [サイトアドレス(URL)]フィールドを設定してホームページを設定した場所です.質問#2
つまり、ブログを
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; }
You are asking two questions at once:
- What's the difference between
home_url()
andsite_url()
? - How do I get WordPress to return the URL root without the subdirectory where it's installed?
Here are the answers, and I confirmed with Andrew Nacin, a core developer of WordPress, as well as ran some server tests to confirm what Andrew told me.
Question # 1
In General > Settings of wp-admin,
home_url()
references the field labeled "Site Address (URL)". Confusing, huh? Yeah, it says "Site Address" so you might assumesite_url()
, but you'd be wrong. Run your own test and you'll see. (You can temporarily drop anecho H1
field withsite_url()
andhome_url()
values at the top of your your theme's functions.php.)Meanwhile,
site_url()
references the field labeled "WordPress Address (URL)" in General > Settings.So, if you're wanting to reference where a physical path might be such as calling a plugin's folder path on the URL to load an image, or calling a theme's folder path to load an image, you should actually use other functions for those - look at
plugins_url()
andget_template_directory_uri()
.The
site_url()
will always be the location where you can reach the site by tacking on/wp-admin
on the end, whilehome_url()
would not reliably be this location.The
home_url()
would be where you have set your homepage by setting General > Settings "Site Address (URL)" field.Question # 2
So, if I have placed my blog in
http://example.com/blog
, andexample.com
is just some static site where I have like a portfolio theme, then this would be a scenario that lines up with your question. In such a case, then I would use this snippet of code:<?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; }
-
A.Nacinとの話し合いへのリンクはありますか?Do you have a link to the discussion with A.Nacin?
- 0
- 2012-04-30
- kaiser
-
メールでした.ごめんなさい.ああ、編集してくれてありがとう-次回は構文が変わったことを覚えています.It was via email. Sorry. Oh, and thanks for the edit -- I'll remember that syntax change next time.
- 1
- 2012-04-30
- Volomike
-
「サイトアドレス(URL)」=「ホーム」および「WordPressアドレス(URL)」=「siteurl」に気付くのに非常に長い時間と多くの苦痛を要しました.彼らは間違いなくそれらのラベルを変更する必要があります.It took me a very long time and a lot of pain to realize that 'Site Address (URL)' = 'home' and 'WordPress Address (URL)' = 'siteurl'. They should definitely change those labels.
- 8
- 2014-01-26
- Jbm
-
2番目の質問に対するあなたの答えは大当たりです!Your answer to the second question hits the jackpot!
- 0
- 2018-02-19
- Devner
-
- 2011-06-17
WPをディレクトリにインストールし、サイトをドメインルートにインストールする場合は、メインのindex.phpファイルをドメインルートに移動し、requireステートメントを編集してディレクトリ内を指すようにする必要があります.
このプロセスの概要は次のとおりです:
WordPressに独自のディレクトリを与える. If you want WP installed in a directory but the site home on your domain root, you need to move the main index.php file out to your domain root and edit the require statement to point within your directory.
This process is outlined here: Giving WordPress Its Own Directory.
-
私はwpネットワークモードなので、いつも `home_url()`を使用します.私はWordPressに独自のディレクトリを一度だけ与えましたが、それは私の好みではありませんでした.しかし、私はいくつかのサイトで `wp_content_dir`を使用しています.I always just use `home_url()` since i am on wp network mode. I have only given WordPress its own directory once and it just was not my liking. But i do however use the `wp_content_dir` on some sites.
- 0
- 2011-06-17
- xLRDxREVENGEx
-
私はマルチサイトの経験がないので、そのような状況でこのようなものがどのように機能するのかよくわかりません.私は、物事をきれいに保ち、ルートを乱雑にしないために、ディレクトリにWPをインストールすることを好みます.I don't have any experience with multisite, so I'm not familiar how this stuff works in that situation. I prefer installing WP in a directory just to keep things clean and not clutter the root.
- 0
- 2011-06-17
- Milo
-
私のファイル構造は、おそらく最も優れたものの1つです.`home/usr/public_html/site1`` home/usr/public_html/site2`など、その後、 `wp_content_dir`は通常cdnにありますmy file structure is probably one of the neatest ones around. `home/usr/public_html/site1` `home/usr/public_html/site2` and so on and then the `wp_content_dir` is usually on a cdn
- 0
- 2011-06-17
- xLRDxREVENGEx
-
WPのインストールだけがそこにあれば問題ありませんが、私は主に、何百ものファイルやディレクトリが散らばっている他の人々のサーバーで作業しています.if a WP install were the only thing there it would be fine, but I'm mostly working on other peoples servers with hundreds of files and directories littered about.
- 0
- 2011-06-17
- Milo
-
WordPressのインストールディレクトリをルートとは異なるものに設定しない限り、site_url()とhome_url()は同じであるという私の理解は正しいですか?Is my understanding correct that site_url() and home_url() are the same, unless one sets up their wordpress install directory to be different than the root?
- 0
- 2011-06-20
- Praveen
-
- 2013-04-17
site_url()
関数とhome_url()
関数は類似しており、動作に混乱を招く可能性があります.site_url()
関数は、データベースのsiteurl
テーブルにあるwp_options
の値を取得します.これはWordPressコアファイルへのURLです.
コアファイルがWebサーバーのサブディレクトリ/wordpress
に存在する場合、値はhttp://example.com/wordpress
になります.home_url()
関数は、データベースのsiteurl
テーブルにあるwp_options
の値を取得します.これは、WordPressWebサイトを表示するためにユーザーにアクセスしてもらいたいアドレスです.
WordPressコアファイルが
/wordpress
に存在するが、WebサイトのURLをhttp://example.com
にする場合、ホーム値はhttp://example.com
.The
site_url()
andhome_url()
functions are similar and can lead to confusion in how they work.The
site_url()
function retrieves the value value forsiteurl
in thewp_options
table in your database.This is the URL to the WordPress core files.
If your core files exist in a subdirectory/wordpress
on your web server, the value would behttp://example.com/wordpress
.The
home_url()
function retrieves the value forhome
in thewp_options
table in your database.This is the address you want people to visit to view your WordPress web site.
If your WordPress core files exist in
/wordpress
, but you want your web site URL to behttp://example.com
the home value should behttp://example.com
. -
- 2011-06-17
2番目の質問に答えるには:
Q:それが正しければ、ワードプレスに http://example.com/を返してもらうことはできますか?
WordPressに独自のディレクトリを与える手順を実行しない限りできません.これを使用すると、WordPressコアファイルを
/blog
または/WordPress
に配置し、次にindex.php
をルートに配置します.WordPressを独自のディレクトリ内に配置する場合は、
home_url()
を使用してindex.php
とsite_url()
コアファイルなどを取得するため.参照:
site_url
のコーデックス
home_url
のコーデックス
Wordpress独自のディレクトリを提供するためのコーデックスTo answer your second question:
Q: If that's correct, then can I get wordpress to return http://example.com/ ?
You can't, unless you take the Giving WordPress its own directory steps. Using this means you put WordPress core files into
/blog
or/WordPress
and then theindex.php
into your root.If you decide to put WordPress inside its own directory then you would use
home_url()
for going toindex.php
andsite_url()
for getting core files and such.Refrences:
Codex forsite_url
Codex forhome_url
Codex for Giving Wordpress Own Directory -
- 2016-05-05
サブディレクトリなしでサイトのURLを取得する最も簡単な方法(代わりに http://example.com/ http://example.com/blog )の場合は、バックスラッシュ/ <を使用してください./p>
たとえば、次のように入力した場合:
<a href="/">domain url</a>
ドメインに移動するリンクが作成されます
The easiest way to get the site url without any sub-directories ( http://example.com/ instead of http://example.com/blog ), just use the backslash /
For example, if you type:
<a href="/">domain url</a>
It will create a link that goes to your domain
-
参加していただきありがとうございます.残念ながら、これはOPによって提起された質問に答えません.人がOPが尋ねるワードプレス機能を使用する必要がある理由はたくさんあります.OPが、投稿の編集などによって、htmlを介してホームページへのリンクを追加したいということはほとんどありません.OPがphpテーマファイルまたはプラグインファイルを編集している可能性が高いです.いずれにせよ、彼らはhtmlではなくphpで動作しています.最後に、OPは*この*サイトに `/`のない値を*期待*しますが、別のサイトでは、OPはサブディレクトリが返されることを*期待*する場合があります.これは、各サイトのWP構成によって異なります.Thanks for participating. Unfortunately, this does not answer the question posed by the OP. There are many reasons why a person needs to use the wordpress functions OP asks about. It is unlikely that OP simply wants to add link to their home page via html, such as by editing a post. It is more likely, OP is editing a php theme file, or a plugin file. In any case, they are working with php, not html. Finally, while OP *expected* a value without `/` for *this* site, on a different site, OP may *expect* a subdirectory to be returned. It depends on the WP configuration for each site.
- 0
- 2019-01-05
- SherylHohman
私の理解では、
site_url()
はWordPressコアファイルがある場所を返します.ブログが
http://example.com/blog
でホストされている場合、site_url()
はhttp://example.com/blog <を返します./code>
しかし、
home_url()
はどのように異なりますか?私の場合、home_url()
は同じものを返します:http://example.com/blog
それが正しければ、WordPressに
http://example.com/
を返してもらうことはできますか?