WordPress

funkcje – Jaka jest różnica między home_url() a site_url()

  • 17 czerwca, 2011
  • 7 min read
funkcje – Jaka jest różnica między home_url() a site_url()


##TLDR:
W niestandardowej instalacji możesz umieścić swoje pliki WordPress w podkatalogu katalogu głównego swojej witryny.
… i nadal zezwalaj odwiedzającym odwiedzającym na dostęp do Twojej „witryny” WordPress z adresu URL domeny (głównego) Twojej witryny, bez dołączania nazwy podkatalogu:
(tj: 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 | 
`home_url()` | `home`      | `WP_HOME`    | browser address bar      | Site Address      |  

Gdzie wartość stałej WP ma pierwszeństwo przed wartością wp_options/WP Settings.

##Różne konfiguracje dla WordPressa

W większości standard instalacje WordPressa, home_url I site_url będzie miał taką samą wartość.
Niezależnie od tego, reprezentują dwie różne rzeczy.

W niestandardowe instalacji, mogą mieć różne wartości.

NOTATKA: Zostawiam protokół w mojej odpowiedzi dla łatwiejszej czytelności.
W tym poście POPRZEDŹ KAŻDY URL za pomocą:
https://, http:// LUB //
(chyba że już to włączyłem).

(// jest relative protokół i będzie działać dla jednego/obu http:// Lub https://)

Instalacje standardowe (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ę pliki wordpress.

5-minutowa instalacja WordPressa instaluje pliki wordpress, te dwie wartości będą takie same – pliki wordpress zostaną zainstalowane w tym samym folderze, z którego ludzie mają korzystać w celu adresowania Twojej witryny lub w części wordpress (blog) witryny Twojego serwera.

Przykład 1:
użytkownik uzyskuje dostęp do Twojego bloga pod adresem: www.example.com,
Pliki wordpress zainstalowane na: www.example.comlub folder główny witryny Twojego serwera.

home_url === site_url === "www.example.com"

Przykład 2:
użytkownik uzyskuje dostęp do Twojego bloga pod adresem: www.example.com/blog,
Pliki wordpress zainstalowane na: www.example.com/bloglub w blog folder w katalogu głównym Twojej witryny.

Warto przeczytać!  warunki - Filtrowanie niestandardowego zapytania typu post

home_url === site_url === "www.example.com/blog"

W tym przypadku www.example.com jest główną stroną internetową i www.example.com/blog jest korzeniem Twojego bloga.
Tutaj Twój blog jest oddzielony i działa jako podzbiór Twojej głównej witryny.
W tym przypadku Twoja główna witryna to nie kontrolowane, definiowane lub stylizowane przez WordPress.
Wystarczy twój blog. Wszystkie adresy URL na Twoim blogu będą poprzedzone www.example.com/blog

Uwaga: w dokumentacji „Witryna/witryna WordPress” (w przeciwieństwie do po prostu „witryna/witryna”) odnosi się do katalogu, w którym są zainstalowane pliki WordPress. W tym przypadku tak jest www.example.com/blog – wszystko w ramach blog teczka. „Witryna WordPress” w tym scenariuszu to nie to samo, co Twoja domena, Twój katalog główny lub główna witryna. Jest to podzbiór całej witryny. Coś w rodzaju strony internetowej w witrynie internetowej. Wspominam o tym, ponieważ terminologia może wydawać się niejasna lub myląca, biorąc pod uwagę tę konkretną konfigurację.

Alternatywna konfiguracja instalacji WordPress

Nadanie 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 „witryny WordPress” jak gdyby pliki zostały zainstalowane w katalogu głównym serwera dla witryny.

Jest to szczególnie prawdziwe, gdy WordPress jest używany do budowania i uruchamiania całej strony internetowej, która nie ma nawet „bloga”.

Przykład 3:
użytkownik uzyskuje dostęp do Twojego „bloga” pod adresem: www.example.com,
Pliki wordpress zainstalowane na: www.example.com/wordpresslub folder główny witryny Twojego serwera.

home_url === "www.example.com"
site_url === "www.example.com/wordpress"

(Uwaga: ta konfiguracja nie zadziała „od razu po wyjęciu z pudełka” po prostu poprzez zmianę wartości tych zmiennych. Wymaga dodatkowych zmian w konfiguracji, aby działała poprawnie)
Zobacz Nadawanie WordPressowi własnego katalogu, sekcja zatytułowana Method II (With URL change) jak to zrobić.

Warto przeczytać!  import - zawartość mieszana: strona pod adresem „” została załadowana przez HTTPS, ale zażądano niezabezpieczonej czcionki „”

W Ten sprawa home_url I site_url powinny mieć różne wartości.

W tej konfiguracji chcesz, aby Twoja witryna była funkcjonować Dokładnie jak gdyby Pliki WordPress zostały zainstalowane w katalogu głównym serwera Twojej witryny…
ALE, w celach organizacyjnych na serwerze,
Ty Właściwie mieć pliki WordPress w folderze o nazwie wordpress w katalogu głównym serwera dla Twojej witryny.

Więc użytkownik wpisze www.example.com aby uzyskać stronę główną WordPress, zamiast www.example.com/wordpress

funkcja wordpress <--> zmienna bazy danych <--> stała WordPress

W tej sekcji przyjęto konfigurację z Przykładu 3 powyżej.
URL paska adresu: www.example.com
pliki wordpress: katalog /wordpress

(Pozostałe przypadki są trywialne: wszystkie zmienne/funkcje przechowują/zwracają tę samą wartość).

Jak ustawić wartości dla site_url I home_url

Po pierwsze, pozwolę sobie to zauważyć siteurl I home przechowywać wartości zwracane przez powyższe funkcje

  1. Zwykle ustawiasz te wartości w panelu zaplecza/pulpitu/administratora WordPress:
    Settings -> General ->
    siteurl Adres WordPressa:
    home Adres miejsca:

(nie dołączaj tutaj końcowych ukośników – zostałyby one skonfigurowane gdzie indziej)

  1. Alternatywnie możesz ustawić te wartości w swojej bazie danych WordPress:
    wp_options stół ->

    options_name | options_value

    siteurl |
    home |

(nie dołączaj tutaj końcowych ukośników – zostałyby one skonfigurowane gdzie indziej)

  1. Edytuj swoje wp-config.php
    Definiować te konkretne stałe zachować swoje wartości
    Definiować WP_HOME I WP_SITEURL ustawienia, wstawiając te linie w kierunku górnej części wp-config.php plik:

    define(’WP_SITEURL’,’ // podstawowe pliki wordpress define(’WP_HOME’,’ // pasek adresu url

    // ** Ustawienia MySQL — możesz uzyskać te informacje od swojego usługodawcy hostingowego ** // …
    (nie dołączaj tutaj końcowych ukośników – zostałyby one skonfigurowane gdzie indziej)

Odniesienie: WP_SITEURL i WP_HOME

UWAGA: To jest mylące
(Naprawdę chciałbym, żeby WordPress oznaczył ustawienia podobnie do ich nazw php,
Jak na przykład WordPress Site Address I Home Page Address lub coś bardziej wyraźnego, np 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 robi się to trudne!

JEŚLI zdefiniowałeś te stałe w swoim wp-config.php plik, to 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 (będzie wyszarzona). Nadal możesz modyfikować, edytując swoją bazę danych, ale nie będzie to miało wpływu na twoją witrynę, podczas gdy stałe istnieją w twoim pliku wp-config.

Ty plik konfiguracyjny nie zmieni się wartości w twojej bazie danych (lub stąd na stronie ustawień). Zamiast tego wartości strony bazy danych/ustawień zostanie zignorowany. Wartości w wp-config zastępują lub mają pierwszeństwo przed ustawieniami bazy danych.

#Więc… na zakończenie (TLDR):

WP function  | wp_options. | WP constant  | what it represents       | WP Settings Label | Example     
-------------------------------------------------------------------------------------------------------------------------------------
`site_url()` | `siteurl`   | `WP_SITEURL` | WordPress files location | WordPress Address | 
`home_url()` | `home`      | `WP_HOME`    | browser address bar      | Site Address      |  

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ą unikalne i niezależne.
Wewnętrznie stałe WordPress (PHP) zastępują ich odpowiedniki db.
Jeśli stała jest zdefiniowana w wp-config, to tak nie zmienić bazę danych.
Ale wewnętrznie WordPress zawsze będzie preferował/wykorzystywał swoją wartość Zamiast z db.


Źródło