¿Cuál es la diferencia entre home_url () y site_url ()
-
-
Estás haciendo dospreguntas a la vez sobre unapreguntamuyimportante.La respuesta a "¿Cuáles la diferenciaentre home_url () y site_url ()?"es diferente a lapregunta,"¿Cómo hagopara que WordPress devuelva la raíz de la URL sinel subdirectorio dondeestáinstalado?"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
-
Reviseestasguías del códice: 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 respuestas
- votos
-
- 2012-04-30
Estás haciendo dospreguntas a la vez:
- ¿Cuáles la diferenciaentre
home_url()
ysite_url()
? - ¿Cómo consigo que WordPress devuelva la raíz de la URL sinel subdirectorio dondeestáinstalado?
Aquíestán las respuestas,y las confirmé con Andrew Nacin,un desarrollador central de WordPress,ytambién realicé algunaspruebas del servidorpara confirmar lo que Andrewme dijo.
Preguntan.º 1
En General> Configuración de wp-admin,
home_url()
hace referencia al campo denominado "Dirección del sitio (URL)". Confuso,¿eh? Sí,dice "Dirección del sitio",por lo quepuede asumirsite_url()
,pero estaríaequivocado . Ejecute supropiaprueba y verá. (Puede soltartemporalmente un campoecho H1
con los valoressite_url()
yhome_url()
en laparte superior delfunctions.php de sutema. )Mientrastanto,
site_url()
hace referencia al campo denominado "Dirección de WordPress (URL)"en General> Configuración.Por lotanto,si desea hacer referencia a dóndepodríaestar una rutafísica,como llamar a la ruta de la carpeta de un complementoen la URLpara cargar unaimagen,o llamar a la ruta de la carpeta de untemapara cargar unaimagen,en realidad debería usar otrasfuncionesparaesos,mire
plugins_url()
yget_template_directory_uri()
.El
site_url()
siempre será la ubicación a la quepuede acceder al sitio simarca/wp-admin
alfinal,mientras quehome_url()
no seríaesta ubicación demanera confiable.El
home_url()
seríael lugar donde ha configurado supágina deinicio al configurarel campo General> Configuración "Dirección del sitio (URL)".Preguntan.º 2
Entonces,si coloquémi blogen
http://example.com/blog
,yexample.com
es solo un sitioestáticoen el quetengo como untema de la cartera,entonceseste sería unescenario que se alinea con supregunta. Ental caso,usaríaestefragmento de código:<?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; }
-
¿Tiene unenlace a la discusión con A.Nacin?Do you have a link to the discussion with A.Nacin?
- 0
- 2012-04-30
- kaiser
-
Fuepor correoelectrónico.Lo siento.Ah,ygraciaspor laedición,recordaréese cambio de sintaxis lapróxima vez.It was via email. Sorry. Oh, and thanks for the edit -- I'll remember that syntax change next time.
- 1
- 2012-04-30
- Volomike
-
Metomómuchotiempo ymucho dolor darme cuenta de que 'Dirección del sitio (URL)'='inicio' y 'Dirección de WordPress (URL)'='siteurl'.Definitivamente deberían cambiaresasetiquetas.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
-
¡Su respuesta a la segundapregunta se llevaelpremiogordo!Your answer to the second question hits the jackpot!
- 0
- 2018-02-19
- Devner
-
- 2011-06-17
Si desea que WPestéinstaladoen un directorio,peroel sitio seencuentraen la raíz de su dominio,debemoverel archivoindex.phpprincipal a la raíz de su dominio yeditar la declaración requirepara que apunte dentro de su directorio.
Esteproceso se describe aquí: Dar a WordPress supropio directorio .
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.
-
Siempre uso `home_url ()` ya queestoyen modo de red wp.Solo le he dado a WordPress supropio directorio una vez y simplementenoera demi agrado.Pero,sinembargo,utilizoel `wp_content_dir`en algunos sitios.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
-
Notengoningunaexperiencia conmultisitio,por lo quenoestoyfamiliarizado con cómofuncionaestoen esa situación.Prefieroinstalar WPen un directorio soloparamantener las cosas limpias yno saturar la raíz.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
-
miestructura de archivosesprobablemente una de lasmás ordenadas queexisten.`home/usr/public_html/site1`` home/usr/public_html/site2` y así sucesivamente y luegoel `wp_content_dir` sueleestaren 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 unainstalación de WPfuera lo único allí,estaríabien,peroestoytrabajandoprincipalmenteen servidores de otraspersonas con cientos de archivos y directoriosesparcidos.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
-
¿Tengoentendido que site_url () y home_url () son lomismo,amenos que uno configure su directorio deinstalación de wordpresspara que sea diferente al raíz?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
Lasfunciones
site_url()
yhome_url()
son similares ypuedengenerar confusiónen sufuncionamiento.Lafunción
site_url()
recuperael valor desiteurl
en latablawp_options
en subase de datos.Estaes la URL de los archivosprincipales de WordPress.
Si sus archivosprincipalesexistenen un subdirectorio/wordpress
en su servidor web,el valor seríahttp://example.com/wordpress
.Lafunción
home_url()
recuperael valor dehome
en latablawp_options
en subase de datos.Estaes la dirección que desea que lagente visitepara ver su sitio web de WordPress.
Si sus archivos centrales de WordPressexistenen
/wordpress
,pero desea que la URL de su sitio web seahttp://example.com
,el valor deinicio debe serhttp://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
Para responder a su segundapregunta:
P: Sies correcto,¿puedo hacer que wordpress devuelva http://example.com/?
Nopuede,amenos que siga lospasos de Dar a WordPress supropio directorio . Usaresto significa que coloca los archivos centrales de WordPressen
/blog
o/WordPress
y luegoelindex.php
en su raíz.Si decideponer WordPress dentro de supropio directorio,entonces usaría
home_url ()
parair aindex.php
ysite_url ()
para obtener archivosprincipales y demás.Refrences:
Codexparasite_url
Codexparahome_url
Codexpara dar un directoriopropio a 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
Laformamás sencilla de obtener la URL del sitio sinningún subdirectorio ( http://example.com/en su lugarde http://example.com/blog ),use labarrainvertida /
Porejemplo,siescribe:
<a href="/">domain url</a>
Creará unenlace que va a su 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
-
Graciasporparticipar.Desafortunadamente,estono responde a lapreguntaplanteadaporel OP.Haymuchas razonespor las que unapersonanecesita usar lasfunciones de wordpress sobre las que OPpregunta.Espocoprobable que OP simplemente quiera agregar unenlace a supágina deinicio através de html,porejemplo,editando unapublicación.Esmásprobable que OPestéeditando un archivo detemaphp o un archivo de complemento.En cualquier caso,estántrabajando conphp,no con html.Finalmente,mientras OP *esperaba * un valor sin `/`para *este * sitio,en un sitio diferente,OPpuede *esperar * que se devuelva un subdirectorio.Depende de la configuración de WPpara cada sitio.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
Tengoentendido que
site_url()
devuelve la ubicación dondeestán los archivosprincipales de WordPress.Simi blogestá alojadoen
http://example.com/blog
,site_url()
devuelvehttp://example.com/blog
Peroentonces,¿en qué se diferencia
home_url()
?Paramí,home_url()
devuelve lomismo:http://example.com/blog
Siesoes correcto,¿puedo hacer que WordPress devuelva
http://example.com/
?