J'ai un type de message personnalisé appelé news et afin de distinguer current et old news messages, j'ai un champ personnalisé dans lequel le client peut marquer un message comme " archivé '.
Donc, mon code de réécriture permalien ressemble à ceci:
function custom_rewrite_rule() {
add_rewrite_rule('^news/archive/?','index.php?post_type=news&news_archive=true','top');
add_rewrite_rule('^news/archive/page/([0-9]+)?/?$','index.php?post_type=news&news_archive=true&paged=$matches[1]','top');
}
add_action('init', 'custom_rewrite_rule', 10, 0);
function add_query_vars_filter( $vars ){
$vars[] = "news_archive";
return $vars;
}
add_filter( 'query_vars', 'add_query_vars_filter' );
Le premier bit fonctionne mais le problème vient de la pagination. Je peux accéder au news_archive query_var mais pas au paginé query_var.
Quelle est la bonne façon d’incorporer la radiomessagerie dans cette réécriture permanente?
Le problème est que votre première règle capture tout ce qui commence par news/archive/
.
Ajoutez l’ancre $
pour correspondre à uniquement news/archive/
:
add_rewrite_rule(
'^news/archive/?$',
'index.php?post_type=news&news_archive=true',
'top'
);
Votre règle de pagination commencera alors à fonctionner telle quelle après avoir supprimé les permaliens.