WordPress как на ладони
rgbcode is looking for WordPress developers.

Использование тега base в head

В MODX / Evo CMS это обычная история, а в WordPress вообще не помню, чтобы сталкивался. Использование тега base в WordPress чем-то плохо, нарушает какие-то негласные соглашения в мире WordPress, может что-то со временем сломать? Можно использовать или лучше избегать?

P.S. Речь не о поддержке браузерами, а именно о том, как движок WordPress и возможно популярные плагины воспринимают использование тега base.

0
bonmot
8 месяцев назад
  • 0
    Kama9752

    Чаще всего он просто не нужен - не помню случаев когда бы он нужен был и решал какую-то проблему. Но если его использование в вашем случае решает какую-то конкретную проблему, то есть, наверное, смысл его установить.

    Тут дело в том, что использование тега <base> в WordPress не является обязательным, и его применение может быть связано с определенными рисками. В основном, это может вызывать проблемы с относительными путями и может затруднить поддержку и обслуживание вашего сайта в долгосрочной перспективе.

    Вообще есть два принципиальных подхода:

    • Использование относительных УРЛ на сайте. Тут <base> нужен.
    • Использование абсолютных УРЛ на сайте. Тут <base> НЕ нужен.

    В WordPress все ссылки указываются в абсолютном виде и всегда создаются динамически в коде - т.е. мы всегда можем изменить базовый УРЛ изменив настройки в БД, константы или через хуки.

    Применение <base> в этом случае не имеет смысла и лишь добавляет еще один момент, который нужно контролировать при манипуляциях с УРЛ. Она может в некоторых случаях ломать плагины, темы или функции, которые могут взаимодействовать с URL-адресами.

    Вместо использования <base> в WP предполагается правильная настройка/изменение пермалинков через админку, константы, хуки. Это позволит вам лучше контролировать URL-адреса и избежать потенциальных проблем, связанных с использованием тега <base>.

    Вспомним для чего вообще нужен тег <base>

    Тег <base> в HTML используется для установки базового (основного) URL-адреса для всех относительных URL-адресов внутри документа. Это означает, что если в документе есть относительные ссылки на ресурсы, такие как изображения, таблицы стилей (CSS) или скрипты, то они будут рассматриваться относительно этого базового URL-адреса.

    Пример использования тега <base>:

    <!DOCTYPE html>
    <html lang="en">
    <head>
    	<meta charset="UTF-8">
    	<meta name="viewport" content="width=device-width, initial-scale=1.0">
    	<base href="https://example.com/">
    	<title>Document</title>
    </head>
    <body>
    	<img src="images/picture.jpg" alt="A Picture">
    	<a href="page.html">Link to Page</a>
    </body>
    </html>

    В этом примере, базовый URL-адрес https://example.com/, а относительный URL для изображения будет расцениваться как https://example.com/images/picture.jpg, а для ссылки как https://example.com/page.html.

    Использование тега <base> может быть полезным в определенных ситуациях, например, когда вам нужно работать с разными базовыми URL-адресами в зависимости от среды выполнения (разработка, тестирование, продакшн).

    Однако, в контексте WordPress, где создаются абсолютный URL и при этом динамически (т.е. через константы или хуки можно подменить базовый УРЛ), использование тега <base> не имеет смысла и более того может вызвать проблемы с поддержкой и обслуживанием.

    Если говорить о жестко указанных УРЛ в контенте, то их при, например, смене домена, можно легко изменить через WP CLI или как-то еще. Такие операции обычно очень редкие. Иметь в контенте конкретные УРЛ адреса как-то более прозрачно и меньше потенциальных ошибок.

    bonmot 8 месяцев назад

    Есть необходимость учитывать вероятность, что контент-менеджер когда-то вставит в контент относительный URL вместо абсолютного. При ситуации, когда у страниц сайта из URL убираются(*) все родительские слаги и когда слаги одной или нескольких attachment страниц могут в будущем оказаться такими же, как слаги одной или нескольких обычных страниц. Так что, в данном случае, вставить base вроде как заставляет жизнь.

    (*) Задавал вопрос как это сделать https://wp-kama.ru/question/kak-ubrat-vse-roditelskie-slagi-iz-permalink-stranitsy

    Kama 8 месяцев назад

    Можно пример?

    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация