Насколько я понимаю, это site_url()
возвращает место, где находятся файлы ядра WordPress.
Итак, если мой блог размещен на http://example.com/blog
потом site_url()
возвращаетсяhttp://example.com/blog
Но тогда чем это home_url()
отличается? Для меня home_url()
возвращается то же самое:http://example.com/blog
Если это правильно, то могу ли я вернуть WordPress http://example.com/
?
Ответы:
Вы задаете два вопроса одновременно:
home_url()
аsite_url()
?Вот ответы, и я подтвердил это Эндрю Нацину, основному разработчику WordPress, а также провел несколько тестов сервера, чтобы подтвердить то, что сказал мне Эндрю.
Вопрос 1
В разделе «Общие»> «Настройки wp-admin»
home_url()
ссылается на поле «Адрес сайта (URL)». Смущает, а? Да, там написано «Адрес сайта», так что вы можете предположитьsite_url()
, но вы ошибаетесь . Запустите свой собственный тест, и вы увидите. (Вы можете временно уронитьecho H1
поле сsite_url()
иhome_url()
значениями в верхней части functions.php вашей вашей темы.)Между тем,
site_url()
ссылается на поле с пометкой «Адрес WordPress (URL)» в разделе «Общие»> «Настройки».Итак, если вы хотите сослаться на физический путь, такой как вызов пути к папке плагина в URL для загрузки изображения или вызов пути к папке темы для загрузки изображения, вы должны использовать для этого другие функции - смотреть на
plugins_url()
иget_template_directory_uri()
.site_url()
Всегда будет местом , где вы можете добраться до места по лавируя на/wp-admin
в конце концов, в то время какhome_url()
не будет надежно быть этим местом.Там
home_url()
, где вы установили свою домашнюю страницу, задайте поле «Общие»> «Настройки» «Адрес сайта (URL)».Вопрос 2
Так что, если я разместил свой блог
http://example.com/blog
, иexample.com
это просто какой-то статичный сайт, на котором у меня есть тема портфолио, то это будет сценарий, который соответствует вашему вопросу. В таком случае, я бы использовал этот фрагмент кода:источник
Если вы хотите, чтобы WP был установлен в каталоге, а сайт находится в корневом каталоге вашего домена, вам нужно переместить основной файл index.php в корневой каталог вашего домена и отредактировать оператор require, чтобы он указывал в вашем каталоге.
Этот процесс описан здесь: Предоставление WordPress собственного каталога .
источник
home_url()
так как я нахожусь в режиме сети wp. Я дал WordPress только один каталог, и он мне не понравился. Но я, однако, используюwp_content_dir
на некоторых сайтах.home/usr/public_html/site1
home/usr/public_html/site2
и так далее, а затемwp_content_dir
обычно находится на CDNTLDR:
При нестандартной установке вы можете разместить файлы WordPress в подкаталоге корня вашего сайта.
... и по-прежнему разрешать вашим посетителям посетителям получать доступ к вашему «веб-сайту» WordPress с доменного (корневого) URL вашего сайта без добавления имени подкаталога:
(то есть:
www.example.com
vswww.example.com/wordpress
):Где значение для константы WP имеет приоритет над значением wp_options / WP Settings.
Различные конфигурации для WordPress
В большинстве стандартных установок WordPress
home_url
иsite_url
будет иметь такое же значение.Несмотря на это, они представляют собой две разные вещи.
При нестандартной установке они могут иметь разные значения.
(
//
является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» в этом сценарии не совпадает с вашим доменом, вашим корнем или вашим основным веб-сайтом. Это подмножество вашего общего сайта. Вроде как сайт внутри сайта. Я упоминаю об этом, поскольку терминология может показаться неясной или запутанной, учитывая данную конкретную настройку.Конфигурация альтернативной установки 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
(Другие случаи тривиальны: все переменные / функции удерживают / возвращают одно и то же значение.)
Как установить значения дляsite_url
иhome_url
Во-первых, позвольте мне заметить, что
siteurl
иhome
хранить значения, возвращенные функциями выше1) Обычно вы устанавливаете эти значения на бэкэнд / панель инструментов / админ панель
Settings -> General ->
siteurl
WordPress:https://www.example.com/wordpress
home
Адрес WordPress: Адрес сайта:https://www.example.com
(не включайте косые черты здесь - это будет настроено в другом месте)
2) В качестве альтернативы, вы устанавливаете эти значения в вашей базе данных WordPress:
wp_options
таблица ->(не включайте косые черты здесь - это будет настроено в другом месте)
3) Отредактируйте ваш
wp-config.php
Определить эти конкретные константы, чтобы сохранить ваши значения
Определить
WP_HOME
иWP_SITEURL
настройки, вставив эти строки в начало вашегоwp-config.php
файла:(не включайте косые черты здесь - это будет настроено в другом месте)
Ссылка: 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-config.php
файле, не имеет значения, какие значения вы используете на своей странице базы данных / настроек.Фактически, вы не сможете изменить это значение через бэкэнд (оно будет выделено серым цветом). Вы все еще можете внести изменения, отредактировав свою базу данных, но это не повлияет на ваш сайт, в то время как константы существуют в вашем файле wp-config.
Ваш конфигурационный файл не изменит значения в вашей базе данных (или, следовательно, на странице настроек). Вместо этого значения вашей страницы базы данных / настроек будут игнорироваться . Значения в wp-config переопределяют или имеют приоритет над настройками вашей базы данных.
Итак ... подвести итог (TLDR):
Где значение для константы WP имеет приоритет над значением wp_options / WP Settings.
Значение записи wp_options и значение WP Settings совпадают.
Редактирование одного, по определению редактирование другого.
Это просто 2 разных способа доступа к одной и той же переменной.
С другой стороны, константы WordPress уникальны и независимы.
Внутренне константы WordPress (PHP) переопределяют свои аналоги в БД.
Если константа определена в wp-config, она не изменит базу данных.
Но внутренне WordPress всегда предпочитает / использует его значение вместо db.
источник
Функции
site_url()
иhome_url()
похожи и могут привести к путанице в том, как они работают.site_url()
Функция возвращает значение значения дляsiteurl
вwp_options
таблице в базе данных.Это URL к основным файлам WordPress.
Если ваши основные файлы существуют в подкаталоге
/wordpress
на вашем веб-сервере, значение будетhttp://example.com/wordpress
.home_url()
Функция возвращает значениеhome
вwp_options
таблице в базе данных.Это адрес, по которому вы хотите, чтобы люди посетили ваш веб-сайт WordPress.
Если ваши основные файлы WordPress существуют в
/wordpress
, но вы хотите, чтобы URL вашего веб-сайта былhttp://example.com
домашним значением, должно бытьhttp://example.com
.источник
Чтобы ответить на ваш второй вопрос:
Вы не можете, если вы не предпримите Giving WordPress свои собственные шаги каталога . Использование этого означает, что вы помещаете файлы ядра WordPress в
/blog
или,/WordPress
а затемindex.php
в ваш корень.Если вы решите поместить WordPress в свой собственный каталог, вы будете использовать
home_url()
его для полученияindex.php
иsite_url()
получения основных файлов и тому подобного.Ссылки:
Кодекс для
site_url
Кодекса для
home_url
Кодекса для предоставления Wordpress собственного каталога
источник
Самый простой способ получить URL сайта без каких-либо подкаталогов ( http://example.com/ вместо http://example.com/blog ), просто используйте обратную косую черту /
Например, если вы введете:
Это создаст ссылку, которая идет на ваш домен
источник
/
для этого сайта, на другом сайте, OP может ожидать подкаталог быть возвращены. Это зависит от конфигурации WP для каждого сайта.