Как я уже сказал в комментариях
Я никогда не использовал generate_rewrite_rule
Документация на него тоже довольно слабая.Но этот ключ выглядит точно так же, как я ожидал бы регулярное выражение.И это имеет смысл, поскольку именно так работают настоящие Mod Rewrite и Htaccess.
add_filter( 'generate_rewrite_rules', function ( $wp_rewrite ) {
$wp_rewrite->rules = array_merge(
['my-custom-url/?$' => 'index.php?custom=1'],
$wp_rewrite->rules
);
} );
Так что здесь $
соответствует концу строки, это означает, что ваш URL должен заканчиваться на my-custom-url
знакомнеобязательно /
из-за ?
.
Когда я захожу на localhost / my-custom-url / somevariable, я получаю страницу, не найденную
Это Не Удивительно, поскольку ваш URL не заканчивается таким образом, чтобы соответствовать этому шаблону.
Проверьте это сами!
Так что вы можете просто удалить $
вы можете или не можете оставить необязательный параметр /
.
add_filter( 'generate_rewrite_rules', function ( $wp_rewrite ) {
$wp_rewrite->rules = array_merge(
['my-custom-url/?' => 'index.php?custom=1'],
$wp_rewrite->rules
);
} );
Одно замечание: это совпадение в любом месте URL
Проверьте это
Надеюсь, что это работает.