Quelle est la différence entre home_url () et site_url ()
-
-
Vousposez deux questions à lafois sur une questiontrèsimportante.La réponse à "Quelleest la différenceentre home_url ()et site_url ()?"est différente de la question "Commentfairepour que WordPress renvoie la racine de l'URL sans le sous-répertoire oùelleestinstallée?"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
-
Consultez cesguides de codex: 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 réponses
- votes
-
- 2012-04-30
Vousposez deux questions à lafois:
- Quelleest la différenceentre
home_url()
etsite_url()
? - Commentfaireen sorte que WordPress renvoie la racine de l'URL sans le sous-répertoire oùelleestinstallée?
Voici les réponses,et j'ai confirmé avec Andrew Nacin,un développeurprincipal de WordPress,et j'aiexécuté destests de serveurpour confirmer ce qu'Andrewm'a dit.
Questionn ° 1
Engénéral> Paramètres de wp-admin,
home_url()
fait référence au champintitulé "Adresse du site (URL)". Confus,hein? Oui,ilest dit "Adresse du site",donc vouspouvez supposersite_url()
,mais vous voustrompez . Exécutez votrepropretestet vous verrez. (Vouspouveztemporairement déposer un champecho H1
avec les valeurssite_url()
ethome_url()
en haut dufunctions.php de votrethème. )Pendant cetemps,
site_url()
fait référence au champintitulé "Adresse WordPress (URL)" dans Général> Paramètres.Donc,si vous souhaitez référencer où un cheminphysiquepeut être,comme appeler le chemin du dossier d'unplugin sur l'URLpour charger uneimage,ou appeler le chemin du dossier d'unthèmepour charger uneimage,vous devezen fait utiliser d'autresfonctionspour ceux-ci - regardez
plugins_url()
etget_template_directory_uri()
.Le
site_url()
seratoujours l'emplacement où vouspourrez accéder au siteen plaçant sur/wp-admin
à lafin,tandis quehome_url()
ne seraitpas cetemplacement demanièrefiable.Le
home_url()
serait l'endroit où vous avez défini votrepage d'accueilen définissant le champ "Adresse du site (URL)" Général> Paramètres.Questionn ° 2
Donc,sij'aiplacémonblog dans
http://example.com/blog
,etexample.com
estjuste un site statique sur lequelj'ai comme unthème duportefeuille,alors ce serait un scénario qui correspond à votre question. Dans untel cas,j'utiliserais cetextrait de 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; }
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; }
-
Avez-vous un lien vers la discussion avec A.Nacin?Do you have a link to the discussion with A.Nacin?
- 0
- 2012-04-30
- kaiser
-
C'étaitpare-mail.Désolé.Oh,et mercipour lamodification -je me souviendrai de ce changement de syntaxe laprochainefois.It was via email. Sorry. Oh, and thanks for the edit -- I'll remember that syntax change next time.
- 1
- 2012-04-30
- Volomike
-
Ilm'afallutrès longtempset beaucoup depeine pour réaliser que 'Site Address (URL)'='home'et 'WordPress Address (URL)'='siteurl'.Ils devraient définitivement changer ces étiquettes.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
-
Votre réponse à la deuxième question remporte lejackpot!Your answer to the second question hits the jackpot!
- 0
- 2018-02-19
- Devner
-
- 2011-06-17
Si vous voulez que WP soitinstallé dans un répertoiremais que le site setrouve à la racine de votre domaine,vous devez déplacer lefichierprincipalindex.php vers la racine de votre domaineet modifier l'instruction requirepour qu'ellepointe dans votre répertoire.
Ceprocessusest décritici: Donner à WordPress sonpropre répertoire .
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.
-
J'utilisetoujoursjuste `home_url ()` carje suisen mode réseau wp.Jen'ai donné qu'une seulefois à WordPress sonpropre répertoireet cen'étaittout simplementpasmongoût.Maisj'utilise cependant le `wp_content_dir` sur certains sites.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
-
Jen'ai aucuneexpérience dumultisite,je ne sais doncpas comment celafonctionne dans cette situation.Jepréfèreinstaller WP dans un répertoirejustepourgarder les chosespropreset nepasencombrer la racine.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
-
ma structure defichiersestprobablement l'une desplus soignées.`home/usr/public_html/site1`` home/usr/public_html/site2`et ainsi de suite,puis le `wp_content_dir`estgénéralement sur 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
-
si uneinstallation WP était la seule chose là-bas,ce seraitbien,maisje travailleprincipalement sur des serveurs d'autrespersonnes avec des centaines defichierset de répertoiresjonchés.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
-
Est-ce queje comprendsbien que site_url ()et home_url () sontidentiques,àmoins que l'onne configure leur répertoire d'installation wordpresspour être différent de la racine?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
Lesfonctions
site_url()
ethome_url()
sont similaireset peuventprêter à confusion dans leurfonctionnement.Lafonction
site_url()
récupère la valeur de la valeur desiteurl
dans latablewp_options
de votrebase de données.Voici l'URL desfichiersprincipaux de WordPress.
Si vosfichiersprincipauxexistent dans un sous-répertoire/wordpress
sur votre serveur Web,la valeur seraithttp://example.com/wordpress
.Lafonction
home_url()
récupère la valeur dehome
dans latablewp_options
de votrebase de données.C'est l'adresse que vous voulez que lesgens visitentpour voir votre site Web WordPress.
Si vosfichiers debase WordPressexistent dans
/wordpress
,mais que vous voulez que l'URL de votre site Web soithttp://example.com
,la valeur d'accueil doit êtrehttp://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
Pour répondre à votre deuxième question:
Q: Si c'est correct,puis-je demander à wordpress de renvoyer http://example.com/?
Vousne pouvezpas,àmoins de suivre les étapes Donner à WordPress sonpropre répertoire . Cela signifie que vousmettez lesfichiers debase de WordPress dans
/blog
ou/WordPress
,puis leindex.php
dans votre racine.Si vous décidez demettre WordPress dans sonpropre répertoire,vous utiliserez
home_url ()
pour accéder àindex.php
etsite_url ()
pour obtenir lesfichiers coreet autres.Réfrences:
Codexpoursite_url
Codexpourhome_url
Codexpour donner sonpropre répertoire à WordpressTo 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
Lemoyen leplus simple d'obtenir l'URL du site sans aucun sous-répertoire ( http://example.com/ à laplacede http://example.com/blog ),utilisez simplement labarre obliqueinverse /
Parexemple,si voustapez:
<a href="/">domain url</a>
Cela créera un lien vers votre domaine
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
-
Merci d'avoirparticipé.Malheureusement,celane répondpas à la questionposéepar le PO.Ilexiste denombreuses raisonspour lesquelles unepersonne doit utiliser lesfonctions wordpress que OP demande.Ilestpeuprobable qu'OP veuille simplement ajouter un lien vers sapage d'accueil via html,parexempleen éditant un article.Ilestplusprobable que OP édite unfichier dethèmephp ou unfichier deplugin.Danstous les cas,ilstravaillent avecphp,pas html.Enfin,alors que OP * attendait * une valeur sans `/`pour * ce * site,sur un site différent,OPpeut * s'attendre * à ce qu'un sous-répertoire soit renvoyé.Cela dépend de la configuration WPpour chaque site.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
Je crois comprendre que
site_url()
renvoie l'emplacement où setrouvent lesfichiersprincipaux de WordPress.Simonblogest hébergé sur
http://example.com/blog
alorssite_url()
renvoiehttp://example.com/blog
Mais alorsen quoi
home_url()
diffère-t-il?Pourmoi,home_url()
renvoie lamême chose:http://example.com/blog
Si c'est correct,puis-je demander à WordPress de renvoyer
http://example.com/
?