Je crois comprendre que site_url()
renvoie l’emplacement où se trouvent les fichiers centraux de wordpress.
Donc, si mon blog est hébergé à http://example.com/blog
puis site_url()
retournehttp://example.com/blog
Mais alors comment home_url()
diffère? Pour moi, home_url()
retourne la même chose:http://example.com/blog
Si cela est correct, puis-je obtenir WordPress pour revenir http://example.com/
?
Réponses:
Vous posez deux questions à la fois:
home_url()
etsite_url()
?Voici les réponses, que j'ai confirmées avec Andrew Nacin, un développeur principal de WordPress, ainsi que des tests de serveur pour confirmer ce que Andrew m'a dit.
Question 1
Dans Général> Paramètres de wp-admin, faites
home_url()
référence au champ intitulé "Adresse du site (URL)". Déroutant, hein? Oui, il est écrit "Adresse du site", donc vous pouvez supposersite_url()
, mais vous auriez tort . Faites votre propre test et vous verrez. (Vous pouvez déposer temporairement unecho H1
champ avecsite_url()
ethome_url()
valeurs au sommet de functions.php de votre votre thème.)Pendant ce temps, fait
site_url()
référence au champ intitulé "Adresse WordPress (URL)" dans Général> Paramètres.Donc, si vous voulez indiquer un chemin physique, par exemple appeler le chemin du dossier d'un plugin sur l'URL pour charger une image, ou appeler le chemin du dossier d'un thème pour charger une image, vous devez utiliser d'autres fonctions pour ces - regarde
plugins_url()
etget_template_directory_uri()
.Le
site_url()
sera toujours le lieu où vous pourrez accéder au site en pointant/wp-admin
à l'extrémité, alors quehome_url()
ce ne serait pas fiable.Le
home_url()
serait l'endroit où vous avez défini votre page d'accueil en définissant le champ Général> Paramètres "Adresse du site (URL)".Question 2
Donc, si j'ai placé mon blog dans
http://example.com/blog
, etexample.com
est juste un site statique où j'ai comme thème de portefeuille, alors ce serait un scénario qui correspond à votre question. Dans un tel cas, j'utiliserais alors cet extrait de code:la source
Si vous souhaitez que WP soit installé dans un répertoire mais dans le répertoire principal du site, à la racine de votre domaine, vous devez déplacer le fichier principal index.php vers la racine de votre domaine et modifier l'instruction require pour qu'elle pointe dans votre répertoire.
Ce processus est décrit ici: Donner à WordPress son propre répertoire .
la source
home_url()
depuis que je suis en mode réseau wp. J'ai donné à WordPress son propre répertoire une seule fois et ce n'était tout simplement pas à mon goût. Mais je l’utilise cependantwp_content_dir
sur certains sites.home/usr/public_html/site1
home/usr/public_html/site2
et ainsi de suite et puis lewp_content_dir
est généralement sur un cdnTLDR:
Dans une installation non standard, vous pouvez placer vos fichiers WordPress dans un sous-répertoire de la racine de votre site Web.
... et autorisez toujours vos visiteurs à accéder à votre "site Web" WordPress à partir de l'URL de domaine (racine) de votre site, sans ajouter le nom du sous-répertoire:
(c.-à-d.
www.example.com
vswww.example.com/wordpress
):Où la valeur d'une constante WP prime sur une valeur wp_options / WP Settings.
Différentes configurations pour WordPress
Dans les installations WordPress les plus standard ,
home_url
etsite_url
aura la même valeur.Quoi qu'il en soit, ils représentent deux choses différentes.
Dans une installation non standard , elles peuvent avoir des valeurs différentes.
(
//
Est lerelative
protocole et travaillera pour les deux / deuxhttp://
ouhttps://
)Installations standard (y compris les installations "en un clic")
home_url
: est la page d'accueil de votre site web (wordpress), comme indiqué dans la barre d'adresse de l'utilisateur.site_url
: est le répertoire où se trouvent vos fichiers wordpress.L'installation en 5 minutes de WordPress installe des fichiers wordpress. Ces deux valeurs seront identiques. Les fichiers wordpress seront installés dans le même dossier que celui que vous souhaitez utiliser pour adresser votre site Web ou la partie wordpress (blog) du site Web de votre serveur.
Exemple 1:
l' utilisateur accède à votre blog à:
www.example.com
, lesfichiers installés à wordpress:
www.example.com
ou le dossier racine du site Web de votre serveur.home_url
===site_url
==="www.example.com"
Exemple 2:
l' utilisateur accède à votre blog à:
www.example.com/blog
, lesfichiers installés à wordpress:
www.example.com/blog
ou dans leblog
dossier dans la racine de votre site Web.home_url
===site_url
==="www.example.com/blog"
Dans ce cas, il
www.example.com
s’agit du site Web principal et dewww.example.com/blog
la racine de votre blog.Ici, votre blog est séparé de votre site Web principal et fonctionne comme un sous-ensemble de celui-ci.
Dans ce cas, votre site Web principal n'est pas contrôlé, défini ou mis en forme par WordPress.
Juste votre blog est. Toutes les URL de votre blog seront traitées par
www.example.com/blog
Remarque: dans la documentation, "site / site Web Wordpress" (par opposition à "site / site Web") désigne le répertoire dans lequel vos fichiers WordPress sont installés. Dans ce cas, c’est
www.example.com/blog
- tout dans leblog
dossier. Dans ce scénario, le "site Web WordPress" n’est pas identique à votre domaine, votre racine ou votre site Web principal. C'est un sous-ensemble de votre site Web global. Un peu comme un site Web à l'intérieur d'un site Web. Je mentionne cela car la terminologie peut sembler peu claire ou source de confusion, étant donné cette configuration particulière.Autre configuration d'installation WordPress
Donner à WordPress son propre répertoire , la section
Method II (With URL change)
.Par exemple, beaucoup de gens ne veulent pas encombrer le dossier racine de leur site Web avec tous les fichiers wordpress.
Ils veulent installer wordpress dans un sous-répertoire *, mais ils doivent accéder au "blog" ou au "site Web WordPress" comme si les fichiers étaient installés à la racine du serveur pour le site Web.
Cela est particulièrement vrai lorsque WordPress est utilisé pour créer et gérer un site Web complet qui n'a même pas de "blog".
Exemple 3:
l' utilisateur accède à votre « blog » à:
www.example.com
, lesfichiers installés à wordpress:
www.example.com/wordpress
ou le dossier racine du site Web de votre serveur.home_url
==="www.example.com"
site_url
==="www.example.com/wordpress"
(Remarque: cette configuration ne fonctionnera pas « hors de la boîte » en changeant les valeurs de ces variables , il nécessite des changements de configuration supplémentaires pour fonctionner correctement.)
Voir Donner WordPress son propre répertoire , la section intitulée
Method II (With URL change)
pour savoir comment faire.Dans ce cas
home_url
etsite_url
devrait contenir des valeurs différentes.Dans cette configuration, vous voulez que votre site fonctionne exactement comme si les fichiers WordPress ont été installés dans le répertoire racine du serveur pour votre site ...
Mais, pour des raisons d' organisation sur le serveur,
vous réellement avez vos fichiers WordPress dans un dossier appelé
wordpress
dans le serveur de répertoire racine de votre site web.Ainsi, l’utilisateur saisira
www.example.com
votre page d’accueil WordPress au lieu dewww.example.com/wordpress
fonction wordpress <-> variable de base de données <-> constante Wordpress
(Les autres cas sont triviaux: toutes les variables / fonctions conservent / retournent la même valeur.)
Comment définir les valeurs poursite_url
ethome_url
Tout d'abord, laissez-moi noter que
siteurl
ethome
stocker les valeurs retournées par les fonctions ci-dessus1) Normalement, vous définissez ces valeurs sur le panneau dorsal / tableau de bord / admin de
Settings -> General ->
siteurl
WordPress: Adresse WordPress:https://www.example.com/wordpress
home
Adresse du site:https://www.example.com
(n'incluez pas les barres obliques finales ici - elles seraient configurées ailleurs)
2) Vous pouvez également définir ces valeurs dans votre base de données WordPress:
wp_options
table ->(n'incluez pas les barres obliques finales ici - elles seraient configurées ailleurs)
3) Editez votre
wp-config.php
Définissez ces constantes spécifiques pour conserver vos valeurs
Définissez
WP_HOME
et définissez lesWP_SITEURL
paramètres en insérant ces lignes vers le haut de votrewp-config.php
fichier:(n'incluez pas les barres obliques finales ici - elles seraient configurées ailleurs)
Référence: WP_SITEURL et WP_HOME
NOTE: Ceci est déroutant
(j'aurais vraiment aimé que WordPress identifie les paramètres de manière similaire à leurs noms php,
tels que
Wordpress Site Address
etHome Page Address
ou quelque chose de plus explicite, tel quelocation of WordPress Site core files
etbrowser url to access WordPress home page
)Maintenant, voici où il devient difficile!
SI vous avez défini ces constantes dans votre
wp-config.php
fichier, peu importe les valeurs que vous avez dans votre page de base de données / paramètres.En fait, vous ne pourrez pas modifier cette valeur via le back-end (elle sera grisée). Vous pouvez toujours modifier en modifiant votre base de données, mais cela n'aura aucun effet sur votre site, alors que les constantes existent dans votre fichier wp-config.
Votre fichier de configuration ne changera pas les valeurs de votre base de données (ni donc de votre page de paramètres). Au lieu de cela, les valeurs de votre page de base de données / paramètres seront ignorées . Les valeurs de wp-config remplacent ou ont priorité sur les paramètres de votre base de données.
Alors ... pour conclure (TLDR):
Où la valeur d'une constante WP prime sur une valeur wp_options / WP Settings.
La valeur de l'enregistrement wp_options et la valeur des paramètres WP sont identiques.
Éditer l'un, par définition, édite l'autre.
Il ne s'agit que de 2 manières différentes d'accéder à la même variable.
D'autre part, les constantes WordPress sont uniques et indépendantes.
En interne, les constantes WordPress (PHP) remplacent leurs équivalents db.
Si une constante est définie dans wp-config, la base de données ne sera pas modifiée.
Mais en interne, WordPress préférera / utilisera toujours sa valeur plutôt que celle de la base de données.
la source
Les fonctions
site_url()
ethome_url()
sont similaires et peuvent entraîner une confusion dans leur fonctionnement.La
site_url()
fonction récupère la valeursiteurl
dans lawp_options
table de votre base de données.Ceci est l'URL des fichiers de base WordPress.
Si vos fichiers principaux existent dans un sous-répertoire
/wordpress
de votre serveur Web, la valeur seraithttp://example.com/wordpress
.La
home_url()
fonction extrait la valeur dehome
lawp_options
table dans votre base de données.C'est l'adresse à laquelle vous souhaitez que les gens se rendent pour consulter votre site Web WordPress.
Si vos fichiers principaux WordPress existent
/wordpress
, mais que vous voulez que l'URL de votre site Web soithttp://example.com
la valeur de base, elle doit l'êtrehttp://example.com
.la source
Pour répondre à votre deuxième question:
Vous ne pouvez pas, sauf si vous prenez Donner à WordPress ses propres étapes de répertoire . Cela signifie que vous placez les fichiers de base WordPress dans
/blog
ou/WordPress
, puisindex.php
dans la racine.Si vous décidez de mettre WordPress dans son propre répertoire, vous utiliserez
home_url()
pour allerindex.php
etsite_url()
pour obtenir des fichiers de base et autres.Refrences:
Codex
site_url
Codex
home_url
Codex permettant de créer un répertoire propre à Wordpress
la source
Le moyen le plus simple d’obtenir l’URL du site sans sous-répertoires ( http://example.com/ au lieu de http://example.com/blog ) consiste à utiliser la barre oblique inversée /
Par exemple, si vous tapez:
Il va créer un lien qui va à votre domaine
la source
/
pour ce site, sur un site différent, OP peut s'attendre à ce qu'un sous-répertoire soit renvoyé. Cela dépend de la configuration de WP pour chaque site.