TLDR:
У нестандартній установці ви можете розмістити свої файли WordPress у підкаталозі кореня веб-сайту.
... і надалі дозволяти відвідувачам відвідувачам отримувати доступ до вашого веб-сайту WordPress з доменної (кореневої) URL-адреси вашого сайту, не додаючи ім'я підкаталогу:
(тобто: 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
Якщо значення константи WP має перевагу над значенням wp_options / WP Settings.
Різні конфігурації для WordPress
У найбільш стандартних установках WordPress home_url
і site_url
буде мати однакове значення.
Незалежно вони представляють дві різні речі.
У нестандартній установці вони можуть мати різні значення.
ПРИМІТКА: Я залишаю протокол у своїй відповіді для легшої читабельності.
У цьому пості, забезпечите КОЖНОГО URL з:
https://
, http://
або //
(якщо я не включив його вже).
( //
є relative
протокол і буде працювати для або / http://
або або https://
)
Стандартні установки (включаючи встановлення "одним клацанням")
home_url
: - це домашня сторінка вашого веб-сайту (wordpress), зазначена в адресному рядку користувача.
site_url
: - це каталог, де розміщені ваші файли wordpress.
5-хвилинна установка WordPress встановлює файли Wordpress, ці два значення будуть однаковими - файли WordPress будуть встановлені в тій самій папці, яку ви хочете, щоб користувачі зверталися до вашого веб-сайту, або в частині WordPress (блогу) веб-сайту вашого сервера.
Приклад 1:
користувач отримує доступ до блог по адресою: www.example.com
,
WordPress файлів , встановлених по адресою: www.example.com
або в кореневій папці веб - сайті сервера.
home_url
=== site_url
==="www.example.com"
Приклад 2:
користувач отримує доступ до блог по адресою: www.example.com/blog
,
WordPress файлів , встановлені по адресою: www.example.com/blog
або в blog
папці всередині кореневого каталогу вашого сайту.
home_url
=== site_url
==="www.example.com/blog"
У цьому випадку www.example.com
це основний веб-сайт і www.example.com/blog
є коренем вашого блогу.
Тут ваш блог відокремлений від основного веб-сайту та працює як підмножина.
У цьому випадку ваш головний веб-сайт не контролюється, не визначається або стилюється WordPress.
Просто ваш блог є. Усі URL у вашому блозі будуть виконуватисьwww.example.com/blog
Примітка. У документації "Сайт / веб-сайт Wordpress" (на відміну від просто "сайт / веб-сайт") посилається на каталог, де встановлені ваші файли WordPress. У цьому випадку це www.example.com/blog
- все , що знаходиться всередині blog
папки. "Веб-сайт WordPress" у цьому сценарії не такий, як ваш домен, ваш root або ваш головний веб-сайт. Це підмножина вашого загального веб-сайту. На зразок веб-сайту всередині веб-сайту. Я згадую про це, оскільки термінологія може здаватися незрозумілою або заплутаною, враховуючи цю особливість.
Чергова конфігурація установки WordPress
Даючи WordPress власний довідник , розділ Method II (With URL change)
.
Наприклад, багато людей не хочуть засмічувати кореневу папку свого веб-сайту усіма файлами wordpress.
Вони хочуть встановити wordpress у підкаталозі, * але мають доступ до "блогу" або "веб-сайту WordPress" так, як ніби файли були встановлені в корені кореня сервера для веб-сайту.
Особливо це стосується того, коли WordPress використовується для створення та запуску цілого веб-сайту, який навіть не має "блогу".
Приклад 3:
користувач отримує доступ до вашого «блог» по адресою: www.example.com
,
WordPress файлів , встановлених по адресою: www.example.com/wordpress
або в кореневій папці веб - сайті сервера.
home_url
=== "www.example.com"
site_url
==="www.example.com/wordpress"
(Примітка: ця конфігурація не працюватиме "поза коробкою", лише змінивши значення цих змінних. Для коректної роботи потрібні додаткові зміни конфігурації.
Див. Розділ " Надання WordPress власного каталогу" , розділ Method II (With URL change)
про те, як це зробити.
У цьому випадку home_url
і site_url
повинні бути різні значення.
У цьому налаштуванні ви хочете, щоб ваш веб-сайт функціонував так, як якщо б файли WordPress були встановлені в кореневому каталозі сервера для вашого веб-сайту ...
АЛЕ для організаційних цілей на сервері
ви фактично маєте свої файли WordPress у папці, що називається wordpress
на сервері кореневий каталог вашого веб-сайту.
Таким чином, користувач буде вводити, www.example.com
щоб отримати вашу домашню сторінку WordPress замістьwww.example.com/wordpress
функція wordpress <--> змінна база даних <--> Wordpress Constant
Цей розділ передбачає приклад 3 конфігурації вище.
URL адресного рядка: www.example.com
файли wordpress: / wordpress
(Інші випадки тривіальні: всі змінні / функції утримують / повертають однакове значення.)
Як встановити значення для
site_url
і
home_url
По-перше, дозвольте мені зазначити, що siteurl
і home
зберігайте значення, повернені функціями вище
1) Зазвичай ви встановлюєте ці значення на бекенді / панелі керування / адміністратора
Settings -> General ->
siteurl
WordPress: Адреса WordPress: https://www.example.com/wordpress
home
Адреса сайту: https://www.example.com
(не включайте сюди косої риски - це було б налаштовано в іншому місці)
2) Або ви встановлюєте ці значення у своїй базі даних WordPress:
wp_options
table ->
`options_name` | `options_value`
----------------------------------------------------
`siteurl` | `https://www.example.com/wordpress`
`home` | `https://www.example.com`
(не включайте сюди косої риски - це було б налаштовано в іншому місці)
3) Редагуйте wp-config.php
Визначте ці конкретні константи, щоб утримувати ваші значення.
Визначити WP_HOME
та WP_SITEURL
налаштування, вставивши ці рядки у верхню частину wp-config.php
файлу:
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 ** //
...
(не включайте сюди косої риски - це було б налаштовано в іншому місці)
Довідка: WP_SITEURL та WP_HOME
ПРИМІТКА: Це заплутано
(я дуже хотів би, щоб WordPress позначив Налаштування, подібні до їхніх імен PHP,
таких як Wordpress Site Address
та Home Page Address
або щось більш явне, як location of WordPress Site core files
і browser url to access WordPress home page
)
`WP_SITEURL` <--> `site_url()` <--> `siteurl` <--> Wordpress Address <--> /wordpress
`WP_HOME` <--> `home_url()` <--> `home` <--> Site Address <--> /
Тепер ось, де стає хитро!
ЯКЩО ви визначили ці константи у вашомуwp-config.php
файлі, це не має значення, які значення у вас є на базі даних / сторінці налаштувань.
Насправді ви не зможете змінити це значення за допомогою зворотного кінця (воно буде сірим). Ви все ще можете змінити, відредагувавши свою базу даних, але це не вплине на ваш сайт, тоді як константи існують у вашому файлі wp-config.
Ви конфігураційний файл не змінить значення у вашій базі даних (або, отже, на сторінці налаштувань). Натомість значення вашої бази даних / налаштувань будуть ігноровані . Значення wp-config переосмислюють або мають перевагу над налаштуваннями вашої бази даних.
Отже ... завершити (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
Якщо значення константи WP має перевагу над значенням wp_options / WP Settings.
Значення запису wp_options та значення WP Settings однакові.
Редагування одного за визначенням редагує інше.
Це лише два різні способи доступу до однієї змінної.
З іншого боку, константи WordPress унікальні та незалежні.
Внутрішньо константи WordPress (PHP) переважають свої аналоги db.
Якщо константа визначена в wp-config, вона не змінює базу даних.
Але внутрішньо WordPress завжди буде віддавати перевагу / використовувати його значення замість db.