Поддержка Темы и шаблоны Как отключить перенаправление URLа страницы?

  • Если набрать в адресной строке для сайта на wordpress адрес страницы вида:

    http://sitename.com/anything/pagename/

    то происходит автоматический редирект на реальный адрес страницы «pagename«

    http://sitename.com/pagename/

    Мне нужно чтобы оставался начальный адрес для конкретной страницы. Дело в том, что в зависимости от значения «anything» на странице будет меняться выдаваемый контент, а адреса ссылок на эти страницы естественно нужны постоянные.

    Как такое сделать?

Просмотр 9 ответов — с 1 по 9 (всего 9)
  • происходит автоматический редирект на реальный адрес страницы «pagename»

    УХ! Как такое получилось добиться? Ибо в ВП проблема как раз обратная.

    АПД.
    Упсс. Сорри, то немного про другое..

    Дело в том, что в зависимости от значения «anything» на странице будет меняться выдаваемый контент, а адреса ссылок на эти страницы естественно нужны постоянные.

    Если я правильно понял, то
    sitename.com/anything1/pagename/, sitename.com/anything2/pagename/,
    sitename.com/anything3/pagename/
    и тд — это 3 разные страницы, с сохранением контента на каждой. Так к чему изобретательство велосипедов, что мешает просто создать эти страницы?

    wp-user.php
    Да, всё верно. Создать страницы не вариант, контент тащится из базы и в ручную такое создавать для каждой страницы слишком трудоемко и не рационально.

    Пока что сделал с помощью костылей так:

    Отключил полностью редирект на всём сайте функцией
    remove_action('template_redirect', 'redirect_canonical');

    После этого страницы
    http://sitename.com/anything/pagename/
    стали выдавать 404-ую ошибку. И я просто изменил шаблон 404-ой страницы, где написал обработку нужных урлов.

    Сейчас всё работает, но у такого метода есть некоторые недостатки:
    1. Отключенный редирект для всего сайта. А возможности переадресации страниц весьма полезные и на сайте используются.
    2. Страницы обрабатываются как 404-ые. Из-за этого, из того, что заметил, тег <title> страниц имеет неправильную надпись. В итоге необходимо либо выносить отдельный хэдер в шаблон 404-ой страницы и редактировать его дополнительно, либо создавать общий title для всех 404-ых страниц.

    В общем буду рад увидеть другой вариант решения проблемы.

    Модератор Yuri

    (@yube)

    Создать страницы не вариант, контент тащится из базы и в ручную такое создавать для каждой страницы слишком трудоемко и не рационально.

    А зачем вручную? Сделать шаблон для страницы — и пусть скрипт тащит то, что нужно, и выводит вместо контента.

    Модератор Yuri

    (@yube)

    http://sitename.com/anything/pagename/
    Обычно «переменной» делают последнюю часть, а не середину. Для «хвостового» варианта есть нормальное, рабочее решение.

    А зачем вручную? Сделать шаблон для страницы — и пусть скрипт тащит то, что нужно, и выводит вместо контента.

    Точно так оно и было. Шаблон для страницы находился на странице pagename. Если страница задана без параметров, то используется один шаблон, если с параметрами — то другой. В итоге материал отображает как нужно, но URL адреса я не смог сделать правильными. Всегда происходил редирект.

    Обычно «переменной» делают последнюю часть, а не середину. Для «хвостового» варианта есть нормальное, рабочее решение.

    В конце тоже подходит. Какое решение? Не смог найти.

    У меня структура сайта не стандартная. И сделать так:

    http://sitename.com/pagename/name1/
    http://sitename.com/pagename/name2/
    http://sitename.com/pagename/name3/

    я не смог. Потому что name1, name2, name3 это полностью дублирующие алиасы страниц записей, которые имеют свой шаблон. То есть при такой структуре будут вызываться допустим пермалинки записей, но мне нужен ещё один шаблон для этих же пермалинков.

    Модератор Yuri

    (@yube)

    Модератор Yuri

    (@yube)

    И посмотрите Как убрать редирект?. Не уверен, что это то, но слова похожие 🙂

    Юрий

    Спасибо! Помогла эта ссылка. Там пример рабочий и именно то, что нужно.

    Была одна проблема, для решения которой пришлось потратить уйму времени. Правила add_rewrite_rule никак не работали и я получал 404-ю ошибку. Проблема решается простым обновлением пермалинков в настройках.

Просмотр 9 ответов — с 1 по 9 (всего 9)
  • Тема «Как отключить перенаправление URLа страницы?» закрыта для новых ответов.