Intereting Posts
wp_editor metabox не выводит сохраненный формат html Как реализовать систему друзей для WordPress? Как добавить и очистить пользовательские типы сообщений и таксономии в плагине? Рассмотрение существующих данных Мобильные пользователи перенаправлены на другую страницу при входе в систему, если не связаны с другим сообщением Проблема с URL-адресом изображений после применения фильтра Theme Customizer – Как создать дополнительную панель поиск пользователей не работает с массивом Случайная запись, страница внутри проблемы с конвейером как отобразить мой плагин WordPress на выбранной странице? получить эскиз персонализированного сообщения Получите JSON от собственного сайта WordPress Игнорирование исходных статей (например, «a», «an» или «the») при сортировке запросов? Поиск идентификатора страницы Добавьте кнопку или кнопку изображения, которая вызывает функции wp в wp-admin несколько файлов html / css для темы wordpress?

add_rewrite_rule – Страница Slug от "/ foo-bar /" до "/ foo / bar /"

Мне нужно foo-bar, чтобы стать foo / bar:

//domain.com / foo-bar »//domain.com / foo / bar


Я перестраиваю веб-сайт, который в настоящее время находится в домашней CMS. У них есть несколько страниц с детьми, но URL-адрес родительской страницы не соответствует детям. Исходные URL-адреса были изменены, но дети никогда не обновлялись.

Ожидаемая структура:
//domain.com/parent/
//domain.com/parent/child

Текущая структура:
//domain.com/parentpage/ ( изменено с / parent / )
//domain.com/parent/child

Я мог бы просто создать страницу для каждого, но я стараюсь избегать пустых / неиспользуемых страниц.

То, что я надеюсь сделать, это просто создать //domain.com/parent-child/ и переписать URL-адрес для соответствия, но я не могу заставить мои правила принимать приоритет над существующим правилом .

Может быть, я не понимаю, что может сделать переписывание?


add_rewrite_rule

Согласованный запрос:

pagename=foo-bar&page= 

Мои попытки: я ожидал, что один из них станет моим решением, но я пробовал дюжину различных незначительных вариаций без успеха:

 add_rewrite_rule( '^foo/bar', 'index.php?pagename=foo-bar', 'top'); add_rewrite_rule( '(foo)/(bar)', 'index.php?pagename=$matches[1]-$matches[2]&page=', 'top'); 

Правило по умолчанию моя страница соответствует:

 add_rewrite_rule( '(.?.+?)(?:/([0-9]+))?/?$', 'index.php?pagename=$matches[1]&page=$matches[2]') 

Solutions Collecting From Web of "add_rewrite_rule – Страница Slug от "/ foo-bar /" до "/ foo / bar /""

Это правило – это то, с чем я столкнулся после поиска этого сообщения: Понимание add_rewrite_rule

 add_rewrite_rule( '^foo/([^/]*)/?$', 'index.php?pagename=foo-$matches[1]', 'top' ); 

Прежде всего, вы можете изменять правила не только с помощью add_rewrite_rule но и с фильтрами (один – общий, который я использую во всех распространенных случаях, это rewrite_rules_array ). Вы получите массив правил перезаписи (и вы ожидаете вернуть его обратно), но вы можете немного изменить его.

И (минута рекламы) – вы также можете использовать панель правил отладки и панель отладки панели перезаписи, чтобы проверить свои правила против ваших тестовых URL-адресов, чтобы увидеть приоритет / совпадения и т. Д. Я являюсь автором этого плагина (панель правил перезаписи панели отладки) и рада за отзыв.