Часть моей работы заключается в создании сайтов Wordpress. Я обычно работаю на своем ноутбуке, пока не получу что-то хорошее, чтобы загрузить его на тестовый сервер, где клиент просматривает его.
Я создаю VirtualHost для каждого нового проекта, поэтому я всегда работаю с установкой Wordpress в домене, который выглядит следующим образом http://local.example.com/
, но когда сайт загружается на тестовый сервер (не контролируется мной), домен может перестать быть похожим http://testserver.com/arbitrary/path/example/
.
Проблема в том, что если я добавлю пользовательскую ссылку в меню, которое указывает, например, на то /events/
, что оно будет работать локально, создавая ссылку http://local.example.com/events/
, но на тестовом сервере ссылка будет указывать http://testserver/events/
, что, очевидно, не правильно.
Я хочу предоставить пользовательской ссылке URL-адрес, который будет работать как в моей локальной среде, так и на тестовом сервере.
Я уже справиться с проблемой смены home
и siteurl
настройки WordPress с помощью:
- изменение этих настроек в локальной базе данных
- создание дампа базы данных
- обновить базу данных на сервере
- восстановление локальных настроек.
Я не хочу использовать полные URL-адреса для пользовательских ссылок и необходимости заменять их URL-адресом сервера каждый раз, когда мне нужно обновить базу данных сервера.
Для ссылок внутри содержимого публикации есть плагин, который решает проблему с добавлением двух шорткодов: http://wordpress.org/extend/plugins/url-shortcodes/ , но мне не удалось найти что-то подобное для пользовательских ссылок. ,
Ответы:
Я также искал решение для этого, и я нашел простое.
Это то, что вам нужно поместить в поле URL:
Работает просто отлично!
С наилучшими пожеланиями Крис
источник
Вы можете использовать
nav_menu_link_attributes
фильтр для проверки и изменения атрибута href для каждого пункта меню перед его выводом.В этом примере мы ищем любые атрибуты href, которые начинаются с a
/
, и в этом случае добавляем URL-адрес тестового сайта:Вы можете создать простой плагин с этим кодом и активировать его только на своем тестовом сервере, или создать какой-то флаг, который условно применяет этот фильтр, когда присутствует среда тестового сайта.
источник
Использование
<base href=" ">
тега в мета-заголовке даст базовый URL для всех относительных якорей на странице.Ссылка:
https://www.w3.org/TR/html4/struct/links.html
12.4 Информация о пути: элемент BASE
Относительные пользовательские ссылки в WordPress:
если вы хотите, чтобы URL сайта был базовым URL всех якорей, добавьте его в theme / header.php внутри
<head>
:<base href="<?php echo site_url(); ?>/">
я знаю, что может опоздать на тебя, но может помочь кому-то еще.
источник
ehepperle.com/sites/in-progress/some-wp-site-root/
если вы явно не установите корень сайта. Скорость веб-разработки заметно не улучшается с помощьюbase
тегов, поскольку при переходе на другой сайт вам придется заново определить, что такое база. Тем не менее, я вижу значение в уменьшении длины значений href.На настраиваемом URL в настройках меню можно использовать относительные ссылки на [blogurl]. Секрет в том, чтобы начать относительный URL с одного
/
. Когда один / запускает пользовательский URL-адрес, система не будет добавлятьhttp://
префикс типичного, и тогда во время выполнения будет создан текущий blogURL в целевом URL-адресе.ПРИМЕР.
Если вы хотите перейти на свою домашнюю страницу, просто укажите
/
в качестве пользовательского URLЕсли вы хотите перейти на страницу индекса в папке,
bbforums
укажите ее/bbforums
в качестве пользовательского URL.Это позволяет вам переместить сайт в тестовый домен без необходимости жесткого кодирования нового blogURL во всех пользовательских ссылках для меню.
Например:
если мой блог
http://example.com
и я хочу протестировать его на поддомене,http://test.example.com
сайт можно перемещать между тестированием и производством без проблем с меню, используя относительное соглашение URL, указанное выше. Я успешно протестировал этот подход, используя плагин XCloner для перемещения сайта.источник
Сначала вы должны установить этот плагин для URL шорткодов.
Добавьте этот код в ваш
functions.php
файл в вашей теме:Затем вам нужно вызвать
wp_nav_menu
функцию из файлов шаблонов:Вот и все. Затем перейдите в раздел внутреннего меню.
Например, если я хочу дать URL-адрес страницы для пользовательской ссылки, я добавлю ее следующим образом:
Теперь вы можете перейти к интерфейсу и проверить, работает ли шорткод.
источник