Intereting Posts
Добавить дорожку данных в ссылки в меню Git vs Child Theme Shortcode не отображает HTML внутри функции Как я могу сделать первую страницу для отображения страницы пользовательской таксономии? Как переопределить шаблон поиска в плагине? Пользовательский тип пользовательского сообщения Удалять сообщения после определенного количества времени Должны ли мы использовать плагины, которые недоступны на официальном сайте WordPress? Как сделать что-то при рендеринге профиля пользователя? Ошибка компоновки стилей и JS в многоуровневом вложенном пути WP Показать ссылку для добавления меню Как обрабатывать одиночный qoute в переводимой строке в WordPress preg_replace style attr в $ content и редактирование post_content перед сохранением Изменение изображения при наведении Разбиение страницы разбивается при объединении результатов поиска с дополнительным WP_Query

rewrite_rule () не сохраняет строку запроса

Мы добавили пользовательский rewrite_rule на наш сайт, чтобы разрешить корректную обработку входящей ссылки и правильную обработку. Ссылки построены как domain.com/meetings/faculty/someIDnumber

 add_action( "init", "pleasing_permalinks" ); function pleasing_permalinks() { add_rewrite_tag( '%hash%', '([^&]+)' ); add_rewrite_rule( 'meetings/faculty/([^/]+)/?$', 'index.php?p=1598&hash=$matches[1]', 'top' ); //flush_rewrite_rules(); } 

Rewrite Analyzer одобряет вышеупомянутое, но когда мы тестируем фактические ссылки в браузере, встроенный идентификационный номер не сохраняется. Что нам здесь не хватает?

Если faculty является дочерней страницей meetings , это правило должно быть:

 add_rewrite_rule( 'meetings/faculty/([^/]+)/?$', 'index.php?pagename=meetings/faculty&hash=$matches[1]', 'top' ); 

pagename=meetings/faculty вместо p=1598

EDIT- или поочередно:

 add_rewrite_rule( 'meetings/faculty/([^/]+)/?$', 'index.php?page_id=1598&hash=$matches[1]', 'top' ); 

page_id=1598 вместо p=1598

Вы пробовали использовать первый индекс, а не второй?

 'index.php?p=1598&hash=$matches[0]', 

Массивы в PHP начинаются с 0 не 1

Просто проверил ваш код на чистой установке WP и смог получить переменную с помощью:

 echo $wp_query->query_vars['hash']; 

WordPress Codex – add_rewrite_tag :
Обратите внимание, что использование $ _GET на переписанном URL-адресе не будет работать, даже если переписывание включает переменные запроса. Вы должны использовать $ wp_query.

Изменить: как написано в правильном ответе «p» необходимо заменить на «page_id», чтобы иметь возможность сохранять переменные при перенаправлении на сообщение типа «страница».