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.com
vs 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_url
i site_url
bę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 relative
protokoł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.com
lub 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/blog
lub w blog
folderze wewnątrz katalogu głównego witryny.
home_url
=== site_url
==="www.example.com/blog"
W tym przypadku www.example.com
jest to główna strona internetowa i www.example.com/blog
jest 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 blog
folderze. „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/wordpress
lub 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_url
i site_url
powinny 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 wordpress
w serwującego katalog główny swojej witryny.
Dlatego użytkownik wpisze, www.example.com
aby 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_url
i
home_url
Po pierwsze, proszę zauważyć, że siteurl
i home
przechowują 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_options
tabela ->
`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_HOME
i WP_SITEURL
ustawienia, wstawiając te linie w górę wp-config.php
pliku:
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 Address
i Home Page Address
lub coś bardziej wyraźnego, takiego jak location of WordPress Site core files
i 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.php
pliku, 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.