функция переписывания WordPress не работает add_rewrite_rule - PullRequest
0 голосов
/ 27 апреля 2019

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

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

function starts_rewrite_rule() {
    add_rewrite_rule('^cities-starting-with-([^/]*)/?','index.php?page_id=340&start_letter=$matches[1]','top');
}
add_action('init', 'starts_rewrite_rule', 10, 0);

URL становится:

site.com/cities-starting-with-a/

Все хорошо и параметры считываются правильно из функции. И когда постоянная ссылка на доступ меняется на

site.com/cities-starting-with-pa/

SQL-запрос меняется на «ab».

После того, как я обновлю Постоянные ссылки (нажмите Сохранить на постоянные ссылки). Я хотел расширить функциональность и добавить еще одно правило перезаписи URL. Я добавил более высокий приоритет, потому что шаблон URL был идентичным (за исключением того, что в новом правиле reweire URL был дополнительный параметр.

function x_letter_cities_starts_rewrite_rule() {
    add_rewrite_rule('^([^/]*)-letter-words-starting-with-([^/]*)/?','index.php?page_id=340&length=$matches[1]&start_letter=$matches[2]','top');
}
add_action('init', 'x_letter_cities_starts_rewrite_rule', 14, 0);

URL должен стать: site.com/7-number-cities-starting-with-pa/

Но похоже, что функция переписывания WordPress не может правильно определить дополнительный параметр (7). поэтому результаты совпадают с URL-адресом, к которому осуществляется доступ, например: site.com/cities-starting-with-pa/

Кажется, приоритет работает неправильно. ИЛИ URL переписать правило Игнорирует первую часть «7-число-» и читает только шаблон второй части URL-адреса «города, начинающиеся с па /», потому что они заканчиваются в одном шаблоне.

Может ли кто-нибудь помочь мне в этой сложной ситуации. Я ценю вашу помощь / подсказки / идеи.

Спасибо, шоку и петрит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...