Qual è la differenza tra home_url () e site_url ()
-
-
Staifacendo due domande contemporaneamente su una domandamoltoimportante.La risposta a "Qual è la differenzatra home_url ()e site_url ()?"è diverso dalla domanda "Comefaccio afar sì che WordPress restituisca l'URL root senza la sottodirectoryin cui èinstallato?"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
-
Rivedi questeguide al codice: 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 risposta
- voti
-
- 2012-04-30
Staifacendo due domande contemporaneamente:
- Qual è la differenzatra
home_url()
esite_url()
? - Comefaccio afarein modo che WordPress restituisca l'URL root senza la sottodirectoryin cui èinstallato?
Ecco le rispostee ho confermato con Andrew Nacin,uno sviluppatoreprincipale di WordPress,oltre aeseguire alcunitest del serverper confermare ciò chemi ha detto Andrew.
Domandan. 1
In Generale> Impostazioni di wp-admin,
home_url()
fa riferimento al campoetichettato "Indirizzo sito (URL)". Confusione,eh? Sì,dice "Indirizzo sito" quindipotrestipresumeresite_url()
,ma sbaglieresti . Eseguiiltuoteste vedrai. (Puoi rilasciaretemporaneamente un campoecho H1
coni valorisite_url()
ehome_url()
nellaparte superiore delfilefunctions.php deltuotema. )Nelfrattempo,
site_url()
fa riferimento al campo denominato "Indirizzo WordPress (URL)"in Generali> Impostazioni.Quindi,se desiderifare riferimento a dovepotrebbeessere unpercorsofisico,adesempio chiamareilpercorso della cartella di unplug-in sull'URLper caricare un'immagine o chiamareilpercorso della cartella di untemaper caricare un'immagine,dovrestieffettivamente utilizzare altrefunzioniper quelli -guarda
plugins_url()
eget_template_directory_uri()
.site_url()
sarà sempre laposizionein cuipuoi raggiungereil sito virando su/wp-admin
allafine,mentrehome_url()
non sarebbe affidabile questaposizione.Il
home_url()
sarebbeilpuntoin cui haiimpostato latua homepageimpostandoil campo Generale> Impostazioni "Indirizzo sito (URL)".Domandan. 2
Quindi,se hoposizionatoilmioblogin
http://example.com/blog
eexample.com
è solo un sito staticoin cui ho cometema delportfolio,quindi questo sarebbe uno scenario che si allinea con latua domanda. Intal caso,utilizzerei questoframmento di codice:<?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; }
-
Hai un link alla discussione con A.Nacin?Do you have a link to the discussion with A.Nacin?
- 0
- 2012-04-30
- kaiser
-
È stato viae-mail.Scusate.Oh,e grazieper lamodifica: laprossima volta ricorderò quel cambiamento di sintassi.It was via email. Sorry. Oh, and thanks for the edit -- I'll remember that syntax change next time.
- 1
- 2012-04-30
- Volomike
-
Mi ci è volutomoltotempoe molto doloreper rendermi conto che "Site Address (URL)"="home"e "WordPress Address (URL)"="siteurl".Dovrebbero assolutamente cambiare quelleetichette.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
-
Latua risposta alla seconda domanda vinceiljackpot!Your answer to the second question hits the jackpot!
- 0
- 2018-02-19
- Devner
-
- 2011-06-17
Se vuoi che WP siainstallatoin una directoryma la home del sitonella root deltuo dominio,devi spostareilfileindex.phpprincipalenella root deltuo dominioe modificare l'istruzione requirein modo chepunti all'interno dellatua directory.
Questoprocesso è descritto qui: Dare a WordPress lapropria directory .
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.
-
Uso sempre `home_url ()` dato che sonoin modalità di rete wp.Ho dato a WordPress la sua directory solo una voltae nonera dimiogradimento.Ma uso comunque `wp_content_dir` su alcuni siti.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
-
Non ho alcunaesperienza conilmultisito,quindinon hofamiliarità conilfunzionamento di questa robain quella situazione.Preferiscoinstallare WPin una directory solopermantenere le cosepulitee noningombrare la radice.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
-
lamia struttura deifile èprobabilmente una dellepiù ordinatein circolazione.`home/usr/public_html/site1`` home/usr/public_html/site2`e così viae quindi `wp_content_dir` di solito è su un cdnmy 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
-
se un'installazione WPfosse l'unica cosa lì andrebbebene,ma stoprincipalmente lavorando su server di altrepersone con centinaia difilee directory disseminati.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
-
Ho capitobene che site_url ()e home_url () sono la stessa cosa,ameno chenon siimposti la loro directory diinstallazione di wordpressin modo che sia diversa dalla root?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
Lefunzioni
site_url()
ehome_url()
sono similie possono creare confusionenelmodoin cuifunzionano.Lafunzione
site_url()
recuperail valorepersiteurl
nellatabellawp_options
del database.Questo è l'URL deifileprincipali di WordPress.
Sei tuoifile coreesistonoin una sottodirectory/wordpress
sultuo server web,il valore sarebbehttp://example.com/wordpress
.Lafunzione
home_url()
recuperail valoreperhome
nellatabellawp_options
del database.Questo è l'indirizzo che vuoi che lepersone visitinoper visualizzareiltuo sito web WordPress.
Sei tuoifile core di WordPressesistonoin
/wordpress
,ma desideri che l'URL deltuo sito web siahttp://example.com
,il valore home dovrebbeesserehttp://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
Per rispondere allatua seconda domanda:
D: Se è corretto,possofarein modo che wordpress restituisca http://example.com/?
Nonpuoi,ameno chetunon svolgai passaggi Dare a WordPress lapropria directory . Usarlo significa chemetti ifile core di WordPressin
/blog
o/WordPress
e poiindex.php
nellatua root.Se decidi dimettere WordPressnella sua directory,useresti
home_url ()
per andare aindex.php
esite_url ()
per ottenerefile coree simili.Rinfreschi:
Codexpersite_url
Codexperhome_url
Codexfor Giving Wordpress Own DirectoryTo 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
Ilmodopiù sempliceper ottenere l'URL del sito senza sottodirectory ( http://example.com/invecedi http://example.com/blog ),utilizza semplicemente labarra rovesciata /
Adesempio,se digiti:
<a href="/">domain url</a>
Creerà un collegamento che va altuo dominio
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
-
Grazieper lapartecipazione.Purtroppo questonon risponde alla domandaposta dal PO.Ci sonomolte ragioniper cui unapersona habisogno di usare lefunzioni di wordpress che OP chiede.Èimprobabile che OP voglia semplicemente aggiungere un collegamento allapropria homepagetramite html,adesempiomodificando unpost.Èpiùprobabile che OP stiamodificando unfile deltemaphp o unfileplugin.In ogni caso,stanno lavorando conphp,non con html.Infine,mentre OP * si aspettava * un valore senza `/`per * questo * sito,su un sito diverso,OPpuò * aspettarsi * che venga restituita una sottodirectory.Dipende dalla configurazione WPper ogni sito.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
Da quantomi risulta,
site_url()
restituisce laposizionein cui sitrovanoi file core di WordPress.Seilmioblog è ospitato su
http://example.com/blog
,site_url()
restituiscehttp://example.com/blog
Ma allorain cosa differisce
home_url()
?Perme,home_url()
restituisce la stessa cosa:http://example.com/blog
Se è corretto,possofarein modo che WordPress restituisca
http://example.com/
?