news というカスタム投稿タイプがあり、currentとoldニュース投稿を区別するために、クライアントがニュース投稿を '_としてマークできるカスタムフィールドがあります。アーカイブ '。
だから私のパーマリンクの書き換えコードはこのようになります:
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' );
最初のビットは動作しますが、問題はページネーションにあります。news_archivequery_varにはアクセスできますが、pagedquery_varにはアクセスできません。
このパーマリンクの書き換えにpagedを組み込む正しい方法は何ですか?
問題は、あなたの最初のルールがnews/archive/
で始まるものをすべてキャプチャーすることです。
only $
に一致するようにnews/archive/
アンカーを追加します。
add_rewrite_rule(
'^news/archive/?$',
'index.php?post_type=news&news_archive=true',
'top'
);
パーマリンクは、パーマリンクをフラッシュした後はそのまま機能し始めます。