Использование тега base в head
В MODX / Evo CMS это обычная история, а в WordPress вообще не помню, чтобы сталкивался. Использование тега base в WordPress чем-то плохо, нарушает какие-то негласные соглашения в мире WordPress, может что-то со временем сломать? Можно использовать или лучше избегать?
P.S. Речь не о поддержке браузерами, а именно о том, как движок WordPress и возможно популярные плагины воспринимают использование тега base.
Чаще всего он просто не нужен - не помню случаев когда бы он нужен был и решал какую-то проблему. Но если его использование в вашем случае решает какую-то конкретную проблему, то есть, наверное, смысл его установить.
Тут дело в том, что использование тега
<base>
в WordPress не является обязательным, и его применение может быть связано с определенными рисками. В основном, это может вызывать проблемы с относительными путями и может затруднить поддержку и обслуживание вашего сайта в долгосрочной перспективе.Вообще есть два принципиальных подхода:
<base>
нужен.<base>
НЕ нужен.В WordPress все ссылки указываются в абсолютном виде и всегда создаются динамически в коде - т.е. мы всегда можем изменить базовый УРЛ изменив настройки в БД, константы или через хуки.
Применение
<base>
в этом случае не имеет смысла и лишь добавляет еще один момент, который нужно контролировать при манипуляциях с УРЛ. Она может в некоторых случаях ломать плагины, темы или функции, которые могут взаимодействовать с URL-адресами.Вместо использования
<base>
в WP предполагается правильная настройка/изменение пермалинков через админку, константы, хуки. Это позволит вам лучше контролировать URL-адреса и избежать потенциальных проблем, связанных с использованием тега<base>
.Вспомним для чего вообще нужен тег
<base>
Тег
<base>
в HTML используется для установки базового (основного) URL-адреса для всех относительных URL-адресов внутри документа. Это означает, что если в документе есть относительные ссылки на ресурсы, такие как изображения, таблицы стилей (CSS) или скрипты, то они будут рассматриваться относительно этого базового URL-адреса.Пример использования тега
<base>
:В этом примере, базовый URL-адрес
https://example.com/
, а относительный URL для изображения будет расцениваться какhttps://example.com/images/picture.jpg
, а для ссылки какhttps://example.com/page.html
.Использование тега
<base>
может быть полезным в определенных ситуациях, например, когда вам нужно работать с разными базовыми URL-адресами в зависимости от среды выполнения (разработка, тестирование, продакшн).Однако, в контексте WordPress, где создаются абсолютный URL и при этом динамически (т.е. через константы или хуки можно подменить базовый УРЛ), использование тега
<base>
не имеет смысла и более того может вызвать проблемы с поддержкой и обслуживанием.Если говорить о жестко указанных УРЛ в контенте, то их при, например, смене домена, можно легко изменить через WP CLI или как-то еще. Такие операции обычно очень редкие. Иметь в контенте конкретные УРЛ адреса как-то более прозрачно и меньше потенциальных ошибок.
Есть необходимость учитывать вероятность, что контент-менеджер когда-то вставит в контент относительный URL вместо абсолютного. При ситуации, когда у страниц сайта из URL убираются(*) все родительские слаги и когда слаги одной или нескольких attachment страниц могут в будущем оказаться такими же, как слаги одной или нескольких обычных страниц. Так что, в данном случае, вставить base вроде как заставляет жизнь.
(*) Задавал вопрос как это сделать https://wp-kama.ru/question/kak-ubrat-vse-roditelskie-slagi-iz-permalink-stranitsy
Можно пример?