Я хочу переопределить URL-адрес некоторых страниц.Например, когда у меня есть страница с точками останова, я получаю URL-адрес стиля
XXX.com / slug / number /
число, определенное именем точки останова. Я попробовал следующий код: страница безАргумент "page" работает вне правила, а аргумент page, безусловно, обрабатывается, но WordPress уже установил правило и обрабатывает его независимо от того, что произойдет.
Возможно ли с помощью удаленного фильтра мой код иметь приоритет над внутреннимперенаправление WordPress?
function add_rewrite_rules( $wp_rewrite )
{
$new_rules = array
(
'testpage/(.+?)/page/?([0-9]{1,})/?$' => 'index.php?pagename='.
$wp_rewrite->preg_index(1).'&page='.
$wp_rewrite->preg_index(2).'&varname=testpage',
'testpage/(.*?)/?$' => 'index.php?pagename='.
$wp_rewrite->preg_index(1).'&varname=testpage'
);
// Always add your rules to the top, to make sure your rules have priority
$wp_rewrite->rules = $new_rules + $wp_rewrite->rules;
}
function query_vars($public_query_vars)
{
$public_query_vars[] = "varname";
return $public_query_vars;
}
function ebi_flush_rewrite_rules()
{
global $wp_rewrite;
$wp_rewrite->flush_rules();
}
add_action( 'init', 'flush_rewrite_rules');
add_action('generate_rewrite_rules', 'add_rewrite_rules');
add_filter('query_vars', 'query_vars');
function prefix_url_rewrite_templates() {
echo "oooo";
exit;
if(get_query_var('varname')){
add_filter( 'template_include', function() {return get_template_directory() . '/page.php';});
}
}
add_action( 'template_redirect', 'prefix_url_rewrite_templates' );