Я знаю, что это не предлагается и что существует много дискуссий по этому поводу. К сожалению, после недели попыток и испытаний мне так и не удалось удалить слизень из моего пользовательского типа. Вот ситуация:
Мне нужна структура 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 и различными решениями, описанными выше.
Есть ли у вас какие-либо предложения?
источник
Ответы:
Для этого я всегда отключаю слаг при добавлении пользовательского типа записи и добавляю пользовательские перезаписи с помощью
add_rewrite_rule
функции.Смотрите также эту страницу кодекса: https://codex.wordpress.org/Rewrite_API/add_rewrite_rule
источник