TLDR:
W niestandardowej instalacji możesz umieścić pliki WordPress w podkatalogu katalogu głównego witryny.
... i nadal pozwalaj odwiedzającym odwiedzającym na dostęp do twojej „witryny” WordPress z adresu URL domeny (katalogu głównego) witryny, bez dołączania nazwy podkatalogu:
(tj: www.example.comvs 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
Gdzie wartość stałej WP ma pierwszeństwo przed wartością wp_options / WP Settings.
Różne konfiguracje dla WordPress
W najbardziej standardowych instalacjach WordPress home_urli site_urlbędzie miał tę samą wartość.
Niezależnie od tego reprezentują dwie różne rzeczy.
W niestandardowej instalacji mogą mieć różne wartości.
UWAGA: W swojej odpowiedzi pomijam protokół, aby ułatwić czytanie.
W tym poście, poprzedź Każdy URL z:
https://, http://LUB //
(chyba że go już włączone).
( //jest relativeprotokołem i będzie działał dla jednego / obu http://lub https://)
Standardowe instalacje (w tym instalacje „jednym kliknięciem”)
home_url: to strona główna Twojej witryny (wordpress), jak wskazano w pasku adresu użytkownika.
site_url: to katalog, w którym znajdują się twoje pliki WordPress.
5-minutowa instalacja WordPress instaluje pliki wordpress. Te dwie wartości będą takie same - pliki wordpress zostaną zainstalowane w tym samym folderze, którego chcesz, aby użytkownicy korzystali z adresu Twojej witryny lub w części wordpress (blog) witryny serwera.
Przykład 1:
użytkownik uzyskuje dostęp do swojego bloga na: www.example.com,
wordpress plików zainstalowanych na: www.example.comlub folderu głównego stronie serwera.
home_url=== site_url==="www.example.com"
Przykład 2:
użytkownik uzyskuje dostęp do swojego bloga na: www.example.com/blog,
pliki wordpress zainstalowany pod adresem: www.example.com/bloglub w blogfolderze wewnątrz katalogu głównego witryny.
home_url=== site_url==="www.example.com/blog"
W tym przypadku www.example.comjest to główna strona internetowa i www.example.com/blogjest ona katalogiem głównym Twojego bloga.
Tutaj Twój blog jest oddzielony i działa jako podzbiór Twojej głównej witryny.
W takim przypadku Twoja główna strona internetowa nie jest kontrolowana, definiowana ani stylizowana przez WordPress.
Tylko twój blog jest. Wszystkie adresy URL na Twoim blogu będą kontynuowane przezwww.example.com/blog
Uwaga: W dokumentacji „strona / witryna Wordpress” (w przeciwieństwie do po prostu „strona / strona internetowa”) odnosi się do katalogu, w którym zainstalowane są pliki WordPress. W tym przypadku jest www.example.com/blog- wszystko w blogfolderze. „Witryna WordPress” w tym scenariuszu nie jest taka sama jak domena, katalog główny lub główna witryna. Jest to podzbiór całej witryny. Coś jak strona internetowa w witrynie. Wspominam o tym, ponieważ terminologia może wydawać się niejasna lub myląca, biorąc pod uwagę tę szczególną konfigurację.
Alternatywna konfiguracja instalacji WordPress
Nadawanie WordPressowi własnego katalogu , sekcja Method II (With URL change).
Na przykład wiele osób nie chce zapychać folderu głównego swojej witryny wszystkimi plikami Wordpress.
Chcą zainstalować wordpress w podkatalogu *, ale mają dostęp do „bloga” lub „strony WordPress” tak, jakby pliki zostały zainstalowane w katalogu głównym serwera na stronie.
Jest to szczególnie ważne, gdy WordPress jest używany do budowy i prowadzenia całej strony internetowej, która nawet nie ma „bloga”.
Przykład 3:
użytkownik uzyskuje dostęp do „blog” pod adresem: www.example.com,
wordpress plików zainstalowanych na: www.example.com/wordpresslub folderu głównego stronie serwera.
home_url=== "www.example.com"
site_url==="www.example.com/wordpress"
(Uwaga: ta konfiguracja nie będzie działać „od razu po wyjęciu z pudełka” po prostu poprzez zmianę wartości tych zmiennych. Wymaga to dodatkowych zmian konfiguracji, aby działała poprawnie)
Zobacz Jak nadać WordPress własnemu katalogowi , rozdział zatytułowany Method II (With URL change)jak to zrobić.
W tym przypadku home_urli site_urlpowinny posiadać różne wartości.
W tej konfiguracji, chcesz swoją stronę, aby działać dokładnie tak, jakby pliki WordPress zostały zainstalowane w katalogu głównym serwera na swojej stronie ...
ale dla celów organizacyjnych na serwerze,
ty rzeczywiście masz pliki WordPress w folderze o nazwie wordpressw serwującego katalog główny swojej witryny.
Dlatego użytkownik wpisze, www.example.comaby uzyskać stronę główną WordPress, zamiastwww.example.com/wordpress
funkcja wordpress <--> zmienna bazy danych <--> Wordpress Constant
W tej sekcji przyjęto powyższą konfigurację z przykładu 3.
adres paska adresu: www.example.com
pliki wordpress: / katalog wordpress
(Pozostałe przypadki są trywialne: wszystkie zmienne / funkcje zachowują / zwracają tę samą wartość.)
Jak ustawić wartości dla
site_urli
home_url
Po pierwsze, proszę zauważyć, że siteurli homeprzechowują wartości zwrócone przez powyższe funkcje
1) Zwykle ustawiasz te wartości w panelu zaplecza / panelu kontrolnym / panelu administracyjnym
Settings -> General ->
siteurl WordPress: Adres WordPress: https://www.example.com/wordpress
home Adres strony: https://www.example.com
(nie dołączaj tutaj ukośników końcowych - które zostałyby skonfigurowane gdzie indziej)
2) Alternatywnie możesz ustawić te wartości w bazie danych WordPress:
wp_optionstabela ->
`options_name` | `options_value`
----------------------------------------------------
`siteurl` | `https://www.example.com/wordpress`
`home` | `https://www.example.com`
(nie dołączaj tutaj ukośników końcowych - które zostałyby skonfigurowane gdzie indziej)
3) Edytuj swoją wp-config.php
Zdefiniuj te określone stałe, aby zachować wartości
Zdefiniuj WP_HOMEi WP_SITEURLustawienia, wstawiając te linie w górę wp-config.phppliku:
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 ** //
...
(nie dołączaj tutaj ukośników końcowych - które zostałyby skonfigurowane gdzie indziej)
Odniesienie: WP_SITEURL i WP_HOME
UWAGA: Jest to mylące
(naprawdę chciałbym, aby WordPress nazwał Ustawienia podobnymi do ich nazw php,
takich jak Wordpress Site Addressi Home Page Addresslub coś bardziej wyraźnego, takiego jak location of WordPress Site core filesi browser url to access WordPress home page)
`WP_SITEURL` <--> `site_url()` <--> `siteurl` <--> Wordpress Address <--> /wordpress
`WP_HOME` <--> `home_url()` <--> `home` <--> Site Address <--> /
Teraz tutaj jest trudne!
JEŚLI zdefiniowałeś te stałe w swoimwp-config.phppliku, nie ma znaczenia, jakie wartości masz na stronie bazy danych / ustawień.
W rzeczywistości nie będzie można zmodyfikować tej wartości za pośrednictwem zaplecza (zostanie wyszarzona). Nadal możesz modyfikować, edytując bazę danych, ale nie będzie to miało wpływu na twoją stronę, podczas gdy stałe istnieją w pliku wp-config.
Twój plik konfiguracyjny nie zmieni wartości w twojej bazie danych (lub stąd stronie ustawień). Zamiast tego wartości strony bazy danych / ustawień zostaną zignorowane . Wartości w wp-config zastępują ustawienia bazy danych lub są nadrzędne.
Więc ... aby zakończyć (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
Gdzie wartość stałej WP ma pierwszeństwo przed wartością wp_options / WP Settings.
Wartość rekordu wp_options i wartość ustawień WP są takie same.
Edycja jednego z definicji powoduje edycję drugiego.
To tylko 2 różne sposoby dostępu do tej samej zmiennej.
Z drugiej strony Stałe WordPress są wyjątkowe i niezależne.
Wewnętrznie stałe WordPress (PHP) zastępują ich odpowiedniki db.
Jeśli stała jest zdefiniowana w wp-config, nie zmienia bazy danych.
Ale wewnętrznie WordPress zawsze będzie preferował / używał swojej wartości zamiast db db.