TLDR:
Bei einer nicht standardmäßigen Installation können Sie Ihre WordPress-Dateien in einem Unterverzeichnis Ihres Website-Stammverzeichnisses ablegen.
... und Ihren Besuchern weiterhin den Zugriff auf Ihre WordPress "Website" über die Domain (Root) URL Ihrer Site ermöglichen, ohne den Namen des Unterverzeichnisses anzufügen:
(dh: 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
Dabei hat der Wert für eine WP-Konstante Vorrang vor einem Wert für wp_options / WP Settings.
Unterschiedliche Konfigurationen für WordPress
In den meisten Standard- WordPress-Installationen home_url
und site_url
wird den gleichen Wert haben.
Unabhängig davon stehen sie für zwei verschiedene Dinge.
In einer nicht standardmäßigen Installation können sie unterschiedliche Werte haben.
HINWEIS: Ich lasse das Protokoll in meiner Antwort aus Gründen der besseren Lesbarkeit weg.
In diesem Beitrag PREPEND jede URL mit:
https://
, http://
OR //
(wenn ich es nicht schon enthalten).
( //
ist das relative
Protokoll und funktioniert für eines / beide http://
oder https://
)
Standardinstallationen (einschließlich "One-Click" -Installationen)
home_url
: ist die Homepage Ihrer (WordPress-) Website, wie in der Adressleiste des Benutzers angegeben.
site_url
: ist das Verzeichnis, in dem sich Ihre WordPress-Dateien befinden.
Bei der 5-minütigen Installation von WordPress werden WordPress-Dateien installiert. Diese beiden Werte sind identisch. WordPress-Dateien werden in demselben Ordner installiert, in dem die Benutzer Ihre Website oder den WordPress- (Blog-) Teil Ihrer Server-Website ansprechen sollen.
Beispiel 1: Der
Benutzer greift auf Ihr Blog zu unter : www.example.com
, auf
WordPress-Dateien, die unter: installiert sind www.example.com
, oder auf den Stammordner der Website Ihres Servers.
home_url
=== site_url
==="www.example.com"
Beispiel 2:
Benutzer greift auf Ihr Blog zu unter : www.example.com/blog
,
WordPress-Dateien installiert unter: www.example.com/blog
oder im blog
Ordner im Stammverzeichnis Ihrer Website.
home_url
=== site_url
==="www.example.com/blog"
In diesem Fall www.example.com
handelt es sich um die Hauptwebsite und www.example.com/blog
das Stammverzeichnis Ihres Blogs.
Hier ist Ihr Blog von Ihrer Hauptwebsite getrennt und fungiert als Teilmenge dieser.
In diesem Fall wird Ihre Hauptwebsite nicht von WordPress gesteuert, definiert oder gestaltet.
Nur dein Blog ist. Alle URLs in Ihrem Blog werden von bearbeitetwww.example.com/blog
Hinweis: In der Dokumentation bezieht sich "Wordpress-Site / Website" (im Gegensatz zu "Site / Website") auf das Verzeichnis, in dem Ihre WordPress-Dateien installiert sind. In diesem Fall ist es www.example.com/blog
- alles im blog
Ordner. Die "WordPress-Website" ist in diesem Szenario nicht mit Ihrer Domain, Ihrem Root oder Ihrer Hauptwebsite identisch. Es ist eine Teilmenge Ihrer gesamten Website. Ein bisschen wie eine Website innerhalb einer Website. Ich erwähne dies, da die Terminologie angesichts dieses speziellen Aufbaus unklar oder verwirrend erscheinen kann.
Alternative WordPress-Installationskonfiguration
Geben Sie WordPress ein eigenes Verzeichnis , den Abschnitt Method II (With URL change)
.
Beispielsweise möchten viele Benutzer den Stammordner ihrer Website nicht mit allen WordPress-Dateien verstopfen.
Sie möchten WordPress in einem Unterverzeichnis * installieren, haben aber Zugriff auf das "Blog" oder die "WordPress-Website", als ob die Dateien im Stammverzeichnis des Servers für die Website installiert wären .
Dies gilt insbesondere dann, wenn WordPress zum Erstellen und Betreiben einer gesamten Website verwendet wird, die nicht einmal über ein "Blog" verfügt.
Beispiel 3:
Benutzer greift auf Ihre „Blog“ auf: www.example.com
,
Wordpress Dateien installiert: www.example.com/wordpress
oder den Stammordner Ihres Servers Webseite.
home_url
=== "www.example.com"
site_url
==="www.example.com/wordpress"
(Hinweis: Diese Konfiguration „out of the box“ nicht funktionieren wird nur durch die Werte dieser Variablen zu ändern Es erfordert zusätzliche Konfigurationsänderungen ordnungsgemäß funktioniert.)
Siehe Geben Wordpress ein eigenes Verzeichnis , den Abschnitt Method II (With URL change)
, wie dies zu tun.
In diesem Fall home_url
und site_url
sollten unterschiedliche Werte halten.
In diesem Setup mögen Sie Ihre Website funktionieren genau wie bei Wordpress - Dateien in dem Stammverzeichnis des Servers für Ihre Website installiert wurden ...
aber für organisatorische Zwecke auf dem Server,
Sie tatsächlich haben Ihre Wordpress - Dateien in einem Ordner mit dem Namen wordpress
im Server Stammverzeichnis für Ihre Website.
Der Benutzer wird also www.example.com
eingeben, um Ihre WordPress-Homepage zu erhalten, anstattwww.example.com/wordpress
WordPress-Funktion <-> Datenbankvariable <-> WordPress-Konstante
In diesem Abschnitt wird die Konfiguration von Beispiel 3 oben angenommen.
Adressleiste URL: www.example.com
WordPress-Dateien: / WordPress-Verzeichnis
(Die anderen Fälle sind trivial: Alle Variablen / Funktionen halten / geben den gleichen Wert zurück.)
So stellen Sie die Werte für
site_url
und ein
home_url
Lassen Sie mich zunächst das notieren siteurl
und home
die von den obigen Funktionen zurückgegebenen Werte speichern
1) Normalerweise stellen Sie diese Werte im WordPress-Backend / Dashboard / Admin-Bereich ein:
Settings -> General ->
siteurl
WordPress-Adresse: https://www.example.com/wordpress
home
Site-Adresse: https://www.example.com
(hier keine abschließenden Schrägstriche einfügen - das wäre anderswo konfiguriert)
2) Alternativ setzen Sie diese Werte in Ihrer WordPress-Datenbank:
wp_options
Tabelle ->
`options_name` | `options_value`
----------------------------------------------------
`siteurl` | `https://www.example.com/wordpress`
`home` | `https://www.example.com`
(hier keine abschließenden Schrägstriche einfügen - das wäre anderswo konfiguriert)
3) Bearbeiten Sie Ihre wp-config.php
Definieren Sie diese spezifischen Konstanten , um Ihre Werte zu speichern.
Definieren Sie WP_HOME
und WP_SITEURL
Einstellungen, indem Sie diese Zeilen am Anfang Ihrer wp-config.php
Datei einfügen :
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 ** //
...
(hier keine abschließenden Schrägstriche einfügen - das wäre anderswo konfiguriert)
Referenz: WP_SITEURL und WP_HOME
HINWEIS: Dies ist verwirrend
(Ich wünschte wirklich, WordPress hätte die Einstellungen mit ähnlichen PHP-Namen
wie Wordpress Site Address
und Home Page Address
oder etwas expliziteren wie location of WordPress Site core files
und gekennzeichnet browser url to access WordPress home page
)
`WP_SITEURL` <--> `site_url()` <--> `siteurl` <--> Wordpress Address <--> /wordpress
`WP_HOME` <--> `home_url()` <--> `home` <--> Site Address <--> /
Hier wird es schwierig!
WENN Sie diese Konstanten in Ihrerwp-config.php
Datei definiert haben, spielt es keine Rolle, welche Werte Sie auf Ihrer Datenbank- / Einstellungsseite haben.
Tatsächlich können Sie diesen Wert nicht über das Back-End ändern (er wird ausgegraut). Sie können weiterhin Änderungen vornehmen, indem Sie Ihre Datenbank bearbeiten. Dies hat jedoch keine Auswirkungen auf Ihre Site, während die Konstanten in Ihrer WP-Konfigurationsdatei vorhanden sind.
Ihre Konfigurationsdatei ändert nicht die Werte in Ihrer Datenbank (oder folglich auf Ihrer Einstellungsseite). Stattdessen werden Ihre Datenbank- / Einstellungsseitenwerte ignoriert . Die Werte in wp-config überschreiben oder haben Vorrang vor Ihrer Datenbankeinstellung.
Also ... zum Abschluss (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
Dabei hat der Wert für eine WP-Konstante Vorrang vor einem Wert für wp_options / WP Settings.
Der wp_options-Datensatzwert und der WP-Einstellungswert sind identisch.
Wenn Sie eines bearbeiten, wird per Definition das andere bearbeitet.
Es gibt nur zwei Möglichkeiten, auf dieselbe Variable zuzugreifen.
Andererseits sind die WordPress-Konstanten einzigartig und unabhängig.
Intern überschreiben WordPress (PHP) -Konstanten ihre DB-Gegenstücke.
Wenn in wp-config eine Konstante definiert ist, wird die Datenbank nicht geändert.
Intern bevorzugt / verwendet WordPress jedoch immer den Wert anstelle des Werts db.