TLDR:
In un'installazione non standard, puoi posizionare i tuoi file WordPress in una sottodirectory della radice del tuo sito web.
... e consenti comunque ai tuoi visitatori di accedere al tuo "sito Web" WordPress dall'URL del dominio (root) del tuo sito, senza aggiungere il nome della sottodirectory:
(ovvero: www.example.com
vs www.example.com/wordpress
):
WP function | wp_options. | WP constant | what it represents | WP Settings Label | Example
-------------------------------------------------------------------------------------------------------------------------------------
`site_url()` | `siteurl` | `WP_SITEURL` | WordPress files location | WordPress Address | https://www.example.com/wordpress
`home_url()` | `home` | `WP_HOME` | browser address bar | Site Address | https://www.example.com
Dove il valore per una costante WP ha la precedenza su un valore wp_options / WP Settings.
Diverse configurazioni per WordPress
Nelle installazioni più standard di WordPress, home_url
e site_url
avrà lo stesso valore.
Indipendentemente da ciò, rappresentano due cose diverse.
In un'installazione non standard , possono avere valori diversi.
NOTA: sto lasciando fuori il protocollo nella mia risposta per una più facile leggibilità.
In questo post, anteporre OGNI URL con:
https://
, http://
OR //
(a meno che non ho incluso già).
( //
è il relative
protocollo e funzionerà per entrambi / entrambi http://
o https://
)
Installazioni standard (comprese le installazioni "One-Click")
home_url
: è la home page del tuo sito Web (wordpress), come indicato nella barra degli indirizzi dell'utente.
site_url
: è la directory in cui si trovano i tuoi file wordpress.
L'installazione in 5 minuti di WordPress installa i file wordpress questi due valori saranno gli stessi: i file wordpress verranno installati nella stessa cartella che si desidera utilizzare per indirizzare il proprio sito Web o la porzione di wordpress (blog) del sito Web del proprio server.
Esempio 1:
utente accede al tuo blog: www.example.com
,
file di WordPress installati presso: www.example.com
o la cartella principale del sito web del server.
home_url
=== site_url
==="www.example.com"
Esempio 2:
utente accede al tuo blog: www.example.com/blog
,
file di WordPress installato in: www.example.com/blog
o nella blog
cartella all'interno della directory principale del tuo sito web.
home_url
=== site_url
==="www.example.com/blog"
In questo caso www.example.com
è il sito Web principale ed www.example.com/blog
è la radice del tuo blog.
Qui il tuo blog è separato e funziona come sottoinsieme del tuo sito Web principale.
In questo caso, il tuo sito Web principale non è controllato, definito o disegnato da WordPress.
Lo è solo il tuo blog. Tutti gli URL nel tuo blog saranno seguiti dawww.example.com/blog
Nota: nella documentazione, "sito / sito Web Wordpress" (anziché semplicemente "sito / sito Web") si riferisce alla directory in cui sono installati i file di WordPress. In questo caso, lo è www.example.com/blog
- tutto all'interno della blog
cartella. Il "sito Web WordPress", in questo scenario, non è uguale al tuo dominio, alla tua radice o al tuo sito Web principale. È un sottoinsieme dell'intero sito Web. Un po 'come un sito Web all'interno di un sito Web. Lo dico in quanto la terminologia può sembrare poco chiara o confusa, data questa particolare configurazione.
Configurazione alternativa per l'installazione di WordPress
Dare a WordPress la propria directory , la sezione Method II (With URL change)
.
Ad esempio, molte persone non vogliono intasare la cartella principale del proprio sito Web con tutti i file wordpress.
Vogliono installare wordpress in una sottodirectory *, ma hanno accesso al "blog" o al "sito Web WordPress" come se i file fossero installati nella radice della radice del server per il sito Web.
Ciò è particolarmente vero quando WordPress viene utilizzato per creare ed eseguire un intero sito Web che non ha nemmeno un "blog".
Esempio 3:
utente accede tuo "blog" in: www.example.com
,
file di WordPress installati presso: www.example.com/wordpress
o la cartella principale del sito web del server.
home_url
=== "www.example.com"
site_url
==="www.example.com/wordpress"
(Nota: questa configurazione non funzionerà "out of the box" solo cambiando i valori di queste variabili. Richiede ulteriori modifiche alla configurazione per funzionare correttamente)
Vedi Dare a WordPress la propria directory , la sezione intitolata Method II (With URL change)
per come fare questo.
In questo caso home_url
e site_url
dovrebbe contenere valori diversi.
In questa configurazione, vuoi che il tuo sito Web funzioni esattamente come se i file WordPress fossero installati nella directory principale del server per il tuo sito Web ...
MA, per scopi organizzativi sul server,
hai effettivamente i tuoi file WordPress in una cartella chiamata wordpress
nel server directory principale per il tuo sito Web.
Quindi, l'utente digiterà www.example.com
per ottenere la tua home page di WordPress, invece diwww.example.com/wordpress
funzione wordpress <--> variabile di database <--> costante di Wordpress
Questa sezione presuppone la configurazione dell'esempio 3 sopra.
URL della barra degli indirizzi: www.example.com
file wordpress: / directory wordpress
(Gli altri casi sono banali: tutte le variabili / funzioni mantengono / restituiscono lo stesso valore.)
Come impostare i valori per
site_url
e
home_url
Per prima cosa, vorrei sottolineare che siteurl
e home
memorizzare i valori restituiti dalle funzioni sopra
1) Normalmente si impostano questi valori nel pannello backend / dashboard / admin di
Settings -> General ->
siteurl
WordPress: Indirizzo WordPress: https://www.example.com/wordpress
home
Indirizzo sito: https://www.example.com
(non includere le barre finali qui - che sarebbero configurate altrove)
2) In alternativa, puoi impostare questi valori nel tuo database WordPress:
wp_options
tabella ->
`options_name` | `options_value`
----------------------------------------------------
`siteurl` | `https://www.example.com/wordpress`
`home` | `https://www.example.com`
(non includere le barre finali qui - che sarebbero configurate altrove)
3) Modifica il tuo wp-config.php
Definisci queste costanti specifiche per contenere i tuoi valori
Definisci WP_HOME
e WP_SITEURL
impostazioni inserendo queste righe nella parte superiore del tuo wp-config.php
file:
define('WP_SITEURL','http://example.com/wordpress'); // wordpress core files
define('WP_HOME','http://example.com'); // address bar url
// ** MySQL settings - You can get this info from your web host ** //
...
(non includere le barre finali qui - che sarebbero configurate altrove)
Riferimento: WP_SITEURL e WP_HOME
NOTA: Questo è confuso
(vorrei davvero che WordPress avesse etichettato le impostazioni simili ai loro nomi php,
come Wordpress Site Address
e Home Page Address
o qualcosa di più esplicito come location of WordPress Site core files
e browser url to access WordPress home page
)
`WP_SITEURL` <--> `site_url()` <--> `siteurl` <--> Wordpress Address <--> /wordpress
`WP_HOME` <--> `home_url()` <--> `home` <--> Site Address <--> /
Ora qui è dove diventa complicato!
Se hai definito quelle costanti nel tuowp-config.php
file, non importa quali valori hai nel tuo database / pagina delle impostazioni.
In effetti, non sarai in grado di modificare questo valore attraverso il back-end (sarà disattivato). Puoi comunque modificare modificando il tuo database, ma farlo non avrà alcun effetto sul tuo sito, mentre le costanti esistono nel tuo file wp-config.
Il file di configurazione non modificherà i valori nel database (o quindi nella pagina delle impostazioni). Invece, i valori della pagina del database / delle impostazioni verranno ignorati . I valori in wp-config hanno la precedenza o hanno la precedenza sulle impostazioni del database.
Quindi ... per concludere (TLDR):
WP function | wp_options. | WP constant | what it represents | WP Settings Label | Example
-------------------------------------------------------------------------------------------------------------------------------------
`site_url()` | `siteurl` | `WP_SITEURL` | WordPress files location | WordPress Address | https://www.example.com/wordpress
`home_url()` | `home` | `WP_HOME` | browser address bar | Site Address | https://www.example.com
Dove il valore per una costante WP ha la precedenza su un valore wp_options / WP Settings.
Il valore del record wp_options e il valore delle impostazioni WP sono gli stessi.
Modificarne uno, per definizione, modifica l'altro.
Sono solo 2 modi diversi di accedere alla stessa variabile.
D'altra parte, le Costanti di WordPress sono uniche e indipendenti.
Internamente, le costanti di WordPress (PHP) prevalgono sulle loro controparti db.
Se una costante è definita in wp-config, non cambia il database.
Ma internamente WordPress preferirà / userà sempre il suo valore anziché quello di db.