• Решено Anonymous User 20954792

    (@anonymized-20954792)


    Всем привет! У меня в WP создана страница «Бэкстейдж», пермалинк на которую — site/бстейдж. При клике на соответствующий пункт меню — «Бэкстейдж» — она нормально открывалась.
    Но я хочу на этой странице создать 3 вкладки — «Дневники», «Эпизоды», «Съёмки» (соответствуют 3-м рубрикам в кастомной таксономии «Бэкстейдж»), и чтобы при первичном заходе на страницу «Бэкстейдж» (site/бстейдж) выводились посты из рубрики «Дневники».
    Для этого добавил в ссылку этой страницы GET-параметры в файле functions.php:

    function redirect_from_to_diaries() {
        if (is_page(426)) {
          wp_redirect(home_url('/бкстейдж/?term="Дневники&id=65'));
          exit;
        }
      }
    add_action('template_redirect', 'redirect_from_to_diaries');

    При попытке перейти на эту страницу в адресной строке формируется ссылка, как нужно: site/бкстейдж/?term=Дневники&id=65.
    Однако при этом страница перестаёт отображаться и выскакивает ошибка 404. Подскажите, как это исправить? При этом даже если убрать код, который вылавливает параметры из адресной строки и выводит посты из выбранной рубрики и оставить только вывод шапки и подвала, всё равно страница не грузится.
    P.S. Для вывода этих постов я использую один и тот же template: Bstage, который выбрал в Gutenberg для отображения этой страницы.

    • Тема изменена 1 месяц, 3 недели назад пользователем Anonymous User 20954792.
Просмотр 12 ответов — с 1 по 12 (всего 12)
  • Просто интересно: а потом вы начнёте воевать с пажинатором? И с кэшем гет-страниц?

    На мой взгляд, правильно эта конструкция выглядит следующим образом:

    1. Общий шаблон рубрики (а не страница) с табами для этих трех подрубрик
    2. Вывод в этом шаблоне табов подрубрик со ссылками на подрубрики.
    3. Простой редирект с рубрики на первую подрубрику.
    4. Поверьте, так будет лучше для Seo, скорости сайта и его дальнейшего развития
    Автор Anonymous User 20954792

    (@anonymized-20954792)

    @efess Дело в том, что это мой первый проект (дебют) на WP c 0. Поэтому сталкиваюсь с кучей вопросов, которые Вам, как специалисту, кажутся нелепыми. Большую часть удалось загуглить, но кое-что не получается. Поэтому этот вопрос задал здесь. Спасибо за идею, вижу в ней логику и охотно верю написанному, но пока что получилась китайская грамота ))) Не могли бы Вы подробнее написать, как это сделать пошагово? Начиная с первого шага: как задать общий шаблон рубрике?
    Касательно шага 2 — да, именно так я и поступил с табами: выводятся 3 соответствующие <a></a> и в них — ссылки, при клике по которым грузятся посты, соответствующие каждой рубрике. Именно это меня и удивляет: если GET-параметры появляются в адресной строке при клике по какому-либо из этих табов, всё отлично работает: страница перезагружается и выводятся нужные посты. Вопрос только в первичном заходе на страницу — когда в адресной строке GET-параметры появляются в результате работы хука в functions.php

    • Ответ изменён 1 месяц, 3 недели назад пользователем Anonymous User 20954792.
    • Ответ изменён 1 месяц, 3 недели назад пользователем Anonymous User 20954792.

    На бОльшую часть вопросов обычно ответы есть в букваре. 1. Вот про шаблон https://wp-kama.ru/id_5177/3-sposoba-sozdat-shablon-stranitsyi.html#template-include

    2. Я имел в виду нормальные чпу ссылки подрубрик. Маст хэв для любой контентной страницы за исключением страниц сложной фильтрации контента (фильтра товаров по нескольким параметрам, например), где чпу тоже найдется применение.

    Первичный заход. Причин может быть несколько. Начиная с того, что перед редиректом в вывод могли попасть html символы. Смысл разбираться с этим кривым способом, если лучше сделать все правильно?

    бстейдж и бкстейдж — две большие разницы. Это раз.
    term="Дневники — это два.
    Тщательнее надо.

    Автор Anonymous User 20954792

    (@anonymized-20954792)

    @yube, спасибо за ценное замечание. Исправил. Теперь хоть другая ошибка выскакивает ))

    Автор Anonymous User 20954792

    (@anonymized-20954792)

    @efess, полностью поддерживаю и всегда стремлюсь: сделать по-нормальному. Потому и прошу помощи.

    Извините за вопрос.
    А чем плагины табов не устраивают? Зачем лезть в шаблоны, в functions.php?

    Автор Anonymous User 20954792

    (@anonymized-20954792)

    @tuxfighter, извиняю и отвечаю: предпочитаю делать максимально без плагинов:
    1. Чтобы разобраться, как и что работает.
    2. Чтобы не перегружать сайт кучей плагинов
    Да, дело вкуса. Но как есть.

    Да, дело вкуса. Но как есть.

    и

    всегда стремлюсь: сделать по-нормальному.

    две большие разницы.

    Принцип ВП это: ядро + тема, которая отвечает за внешний вид + плагины, которые отвечают за весь функционал. Если при смене темы пропадает какой-то функционал, значит сайт делал криворукий недоучка, не разбирающийся в ВП, даже если он гений РНР.

    Так что «дело вкуса» — это способ сделать максимально не по-нормальному.

    далее.

    1. Чтобы разобраться, как и что работает.

    так и работает: весь функционал, даже собственный, выноситься в плагины. Не ломаеться тема и «пара строк в functions.php», а пишется свой плагин, который будет работать на любой теме.

    2. Чтобы не перегружать сайт кучей плагинов

    Внятно объясни, чем код из плагина отличается от такого же кода из functions.php и как он «перегружает сайт»

    Модератор Yui

    (@fierevere)

    永子

    @italexey вы так старательно редактировали последний комментарий, что он попал в спам и, честно говоря, вытаскивать я его оттуда не хочу, впрочем и отвечать на ваш выпад в сторону форума в целом тоже не стану. Всегда можно проигнорировать отдельные комментарии и пользователей, не вешая ярлыки на всех, в крайнем случае пожаловаться (на боковой панели даже кнопка есть).

    Если и правда считаете что сюда вам больше дороги нет,

    https://wordpress.org/support/forum-user-guide/faq/#can-you-delete-my-account

    Автор Anonymous User 20954792

    (@anonymized-20954792)

    @fierevere А я и не просил Вас что-то вытаскивать и отвечать мне на него. Оно сразу попало в спам, а редактировал я его позже — было пару описок и пропусков, терпеть не могу безграмотные тексты с кучей элементарных ошибок и описок. Да, я считаю, что дороги мне больше сюда нет: токсичность и «заклюй ближнего» у вас просто процветает. Нормально уходить оттуда, где невозможно находиться, НЕнормально — игнорировать и делать вид, что ничего не происходит. А «в целом» — это где-то в параллельной реальности. Поэтому предлагаю переименовать описание форума в «спросите, и заклёваны будете». И не надо говорить, что кто-то не так понял. Любой язык имеет массу средств, чтобы донести доброжелательность до собеседника. Но это не для корифеев. Только за то, что они снизошли до нас, надо целовать песок, по которому они ходили — не целовал, не целую, и не буду никогда. Да, сегодня я говорю прямо и то, что думаю. Надоело быть терпилой и делать вид, что ничего не происходит. А Вам желаю спокойно существовать — чтобы активности было как можно меньше. Никаких вопросов, никаких ответов — предел мечтаний. Редактировать сообщение не буду — чтобы снова не пришлось в спаме разыскивать. Вы его, естественно, удалите. Впрочем, мне всё равно, что будет дальше. Спасибо, что дали ссылку для удаления. Жаль, что темы удалить невозможно и они будут продолжать колоть глаза гениям с рождения, но ничего не попишешь. Прощайте!

    Меня всегда забавляло, что если ответ ТСу нравиться, то даже «спасибо» не услышишь.
    Но если ответ чем-то не устраивает, то всегда выльют»токсичность и «заклюй ближнего» у вас просто процветает. » и прочего говна…..

    Только за то, что они снизошли до нас, надо целовать песок, по которому они ходили — не целовал, не целую, и не буду никогда.

    ну и дальше — бред какой-то идет…… что нужно себе по напридумывать, какую фантазию иметь, чтоб что-то подобное увидеть……. непонятно….

    Надоело быть терпилой и делать вид, что ничего не происходит.

    Не будь. ни кто не заставляет. Мало ли что у тебя в жизни происходит, а форум тут при чем?

Просмотр 12 ответов — с 1 по 12 (всего 12)