Intereting Posts
Активный класс для текущей ссылки Показывать дочерние страницы по меню, используя меню выпадающего меню Superfish? Используйте Git в SSH, чтобы вытащить определенные каталоги WordPress Разрешения сервера: WordPress обращается к файлам как к публичным? AJAX вызов внутри класса плагина не запускается Почтовые миниатюры нескольких размеров Найти сообщение / идентификатор страницы блога – где поставить код? Использовать get_terms для получения post_tags, но ограничить таксономию Как я могу добавить разбивку на страницы и как изменить размер эскизов? Как сделать дочернюю тему в wordpress с помощью wp_enqueue_style? Использование довольно простой темы Использование setup_postdata () с многомерным массивом Скрыть ACF от исходного кода до тех пор, пока не будет нажата кнопка «показать» Проблема уровня домена для нескольких пользователей? пользовательский тип сообщения и таксономии в классе php wp_signon () не требует аутентификации пользователя

Переписывать URL-адрес WordPress не работает

Я пытаюсь создать пользовательскую переписку для моего плагина wordpress.

function insert_plugin_rewrite_rule($rules) { global $wp, $wp_rewrite; $wp->add_query_var('update_slug'); $ret = $wp_rewrite->add_rule('updates/plugins/([^/]+)/', 'index.php?update_slug=$matches[1]', 'top'); // Remove when debugging is done. $wp_rewrite->flush_rules(false); } add_filter('init', 'insert_plugin_rewrite_rule'); 

И попробовать и перехватить его:

 function blah() { global $wp; echo "<pre>";print_r($GLOBALS['wp']->query_vars['update_slug']);echo "</pre>"; } add_filter('init', 'blah'); 

Когда я нахожусь в функции «blah», это показывает, что мой запрос update_slug var был зарегистрирован и что мой url также был зарегистрирован. Но когда я перехожу к / updates / plugins / 123 /, он не показывает никаких запросов.

Правильно ли я это делаю, или есть какая-то тонкая вещь, которую я пропускаю?

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

 add_filter( 'query_vars', 'wpa59404_query_vars' ); function wpa59404_query_vars($query_vars){ $query_vars[] = 'update_slug'; return $query_vars; } add_action( 'init', 'wpa59404_rewrites' ); function wpa59404_rewrites(){ add_rewrite_rule( 'updates/plugins/([^/]+)/?$', 'index.php?update_slug=$matches[1]', 'top' ); }