Intereting Posts
Крюк (или другой способ), чтобы узнать, когда активирован / установлен другой плагин Добавить css только в основной текст Отправить форму после решения reCaptcha Как использовать фильтр api_request_url Default post category overruling% category% для URL-адресов сообщений Странная проблема с permalink: невозможно переименовать / company-2 / to / company / get_queried_object () возвращает значение null в архиве post date Почтовый тег WordPress и настраиваемое поле Миниатюры больше по размеру, чем исходное изображение Я получаю «0» в начале моего описания сообщения на главной странице Показать сообщения, содержащие по крайней мере 1 из списка из 10 тегов, но не содержащих другие теги Изменить цвет таблицы td на основе значения Как получить идентификатор Clicked и вывести данные ID на другой странице Yoast: мне все еще нужно вручную вставлять метатеги в мою тему, или Yoast сделает это для меня? Как показать один пост, отличный от остальных?

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», чтобы иметь возможность сохранять переменные при перенаправлении на сообщение типа «страница».