Добавление пользовательского сегмента URL на страницу wordpress

Я пытаюсь разрешить моей странице получать переменную запроса, но переписать ее на хорошую постоянную ссылку. Поэтому я хотел этого

example.com/wordpress-page/random 

Поэтому я не хочу, чтобы random был подстраницей или что-то в этом роде, поскольку он поступает из внешнего сервиса. Чтобы сделать это, я добавил этот код к своим functions.php

 function add_my_var($public_query_vars) { $public_query_vars[] = 'my_var'; return $public_query_vars; } add_filter('query_vars', 'add_my_var'); function do_rewrite() { add_rewrite_rule('wordpress-page/([^/]+)/?$', 'index.php?name=wordpress-page&my_var=$matches[1]','top'); } add_action('init', 'do_rewrite'); 

Когда я перехожу на example.com/wordpress-page я получаю свою страницу, но когда я перехожу на example.com/wordpress-page/random я получаю 404 страницы.

Я сбросил правила перезаписи, сохраняя постоянные ссылки в панели wp-admin .

Где я неправ?

Solutions Collecting From Web of "Добавление пользовательского сегмента URL на страницу wordpress"

Я обнаружил, что мне нужно вызвать функцию flush_rewrite_rules () . Это было сделано в дополнение к query_vars и функции add_rewrite_rule() вы уже продемонстрировали выше.

В моем случае я решил поместить его в функцию functions.php моей темы, используя hook_theme action hook и отключив / активировав мою тему. Но вы можете, вероятно, поместить его в другое место, пока оно получится однажды вызвано (возможно, не «init»)

 add_action('switch_theme', 'mytheme_setup_options'); function mytheme_setup_options () { flush_rewrite_rules(); }