Как удалить слаг из иерархических пользовательских типов в 3.5.2


8

Я знаю, что это не предлагается и что существует много дискуссий по этому поводу. К сожалению, после недели попыток и испытаний мне так и не удалось удалить слизень из моего пользовательского типа. Вот ситуация:

Мне нужна структура URL

  • post / blog / my-blog-post [хорошо!]
  • страницы / родительский сервис / сервис [ок!]
  • портфолио / портфолио / моя первая работа [хорошо!]
  • static / parent-static-page / static-page [<<< --- вот проблема]

Моя конфигурация

  • Wordpress 3.5.2
  • Пользовательский тип «статический»: иерархический; без каких-либо правил «переписать».
  • Пользовательский тип «портфолио»: не иерархический; 'rewrite' => array ('with_front' => false)
  • Структура постоянной ссылки: / blog /% postname% /
  • В качестве главной страницы я установил статическую страницу «блог»

Проблема

  • post blog / my-blog-post [хорошо!]
  • страницы / сайты / динамические сайты [хорошо!]
  • портфолио / портфолио / моя первая работа [хорошо!]
  • статические / кто-я / термины [<<< --- вот в чем проблема]

Что я пробовал

Ничего

В начале, как и ожидалось, URL-адрес «статической» записи «Моя тестовая страница» - это / blog / static / my-test-page

'rewrite' => array ('slug' => '', 'with_front' => false)

Я удалил фронт от URL ... хорошо! Теперь у меня есть / static / my-test-page

'rewrite' => array ('slug' => false, 'with_front' => false)

Это не удаляет слизняк. У меня есть / static / my-test-page .

'rewrite' => array ('slug' => '/', 'with_front' => false)

Это удаляет слизняк! Теперь у меня есть / my-test-page . К сожалению, все страницы возвращают мне ошибку 404 .

Плагин «Удалить слаг из пользовательского типа сообщения»

Хотя это работает, только если моя структура постоянных ссылок /% postname%, я попытался установить этот плагин и изменить структуру постоянных ссылок для проведения теста. Это работает, но, к сожалению , не уважает иерархическую природу моего «статического» типа.

Учебник от Хоакин Лим

Не работает В частности, после добавления function book_rewrite_rule()говорится, что мой пользовательский тип теперь будет доступен с / my-test-page, а также / static / my-test-page , но он не работает для меня. Я могу получить доступ только с / static / my-test-page . Я также пытался применить весь учебник, также делал некоторые изменения и тесты, но безуспешно

Учебник от vip.wordpress

Если я изменю «событие» на «статический» в обеих функциях, я могу получить доступ к своей странице из блога / родительской страницы / моей тестовой страницы . Если я добавлю 'rewrite' => ('with_front' => false), все сломается, и я смогу получить доступ только со static / parent-page / my-test-page

Другие решения и тесты

К сожалению, с моей фактической репутацией я не могу связать больше двух ссылок. Но я попробовал также решение, найденное на ryansechrest.com, shibashake.com и - конечно же - ВСЕ вопросы, опубликованные на этом портале ранее. Конечно, каждый раз, когда я сбрасываю все правила постоянных ссылок, посещая страницу настроек, сохраняя параметры, меняя их дважды и сохраняя снова, используя global $wp_rewrite; $wp_rewrite->flush_rules();. Я попробовал много комбинаций с массивом rewrite и различными решениями, описанными выше.

Есть ли у вас какие-либо предложения?


1
Оживление вопроса, который был задан ооочень давно (отличный вопрос, кстати). Вы когда-нибудь находили решение? Может ли быть решение использовать стандартные типы страниц WP и использовать пользовательский шаблон страницы?
Джен

Привет @guiniveretoo, я до сих пор не нашел решение. На моем веб-сайте я провожу эксперимент: я преобразую все свои собственные типы постов (портфолио, инструменты, информация) и все посты на страницах. Таким образом, я упросту структуру и URL. Затем я укажу страницы с метаполями; также передний конец будет проще.
Марко Паничи

Ответы:


1

Для этого я всегда отключаю слаг при добавлении пользовательского типа записи и добавляю пользовательские перезаписи с помощью add_rewrite_ruleфункции.

Смотрите также эту страницу кодекса: https://codex.wordpress.org/Rewrite_API/add_rewrite_rule

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.