わかりました、それで私はそれが愚かなタイトルであることを知っています、しかしそれはまさに私が今感じる方法です..
私はWordPressのためにいくつかのカスタムリライトを作成しました、そして、それらは素晴らしい働きをします、唯一の問題は今私が改ページを加える必要があるということです。私のルールはページネーションをめちゃくちゃにしています。ページ付けリンクをクリックするとページのURLが更新されますが、クエリは変わりません。
これが私のfunctions.phpにあるものです。
// ADD REWRITE FOR VIDEOS -> GROUP
add_rewrite_tag('%group%','([^&]+)');
// ADD REWRITE FOR VIDEOS -> VALUE
add_rewrite_tag('%value%','([^&]+)');
// ADD REWRITE FOR VIDEOS TO ACCEPT GROUP & VALUE
add_rewrite_rule('^car-videos/group/([^/]*)/value/([^/]*)/?','index.php?page_id=40&group=$matches[1]&value=$matches[2]','top');
これが私の改ページコードです。
<div class="pagination">
<?php $total_pages = $loop->max_num_pages;
if ($total_pages > 1){
$current_page = max(1, get_query_var('paged'));
echo paginate_links(array(
'base' => get_pagenum_link(1) . '%_%',
'format' => 'page/%#%',
'current' => $current_page,
'total' => $total_pages,
'prev_text' => __('Previous'),
'next_text' => __('Next')
));
}
?>
</div>
これが、グループ変数と値変数を取得する方法です。
$urlGroup = $wp_query->query_vars['group'];
$urlValue = $wp_query->query_vars['value'];
私はこれを私のWP_Queryで使っています
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
改ページを許可するようにルールを書き直すにはどうすればよいですか。私が間違っていることはありますか?
よくわかりませんが、2つの書き換えタグではなく、2つのクエリ変数 "group"と "value"を追加するだけでよいと思います。あなたはこれを試すことができます:
add_filter('query_vars', 'cyb_add_query_vars');
function cyb_add_query_vars( $vars) {
$vars[] = "group"; // name of the var as seen in the query string and URL
$vars[] = "value";
return $vars;
}
add_action('init','cyb_add_rewrite_rules');
function cyb_add_rewrite_rules() {
add_rewrite_rule( '^car-videos/group/([^/]*)/value/([^/]*)/?$','index.php?page_id=40&group=$matches[1]&value=$matches[2]','top');
//Rule for pagination
add_rewrite_rule( '^car-videos/group/([^/]*)/value/([^/]*)/page/([0-9]{1,})/?$', 'index.php?page_id=40&group=$matches[1]&value=$matches[2]&paged=$matches[3]', 'top' );
}
それから、これはページ付けのために働くべきです:
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
そしてこれで "group"と "value"の値を得ることができます。
$group = get_query_var('group');
$value = get_query_var('value');
//OR
global $wp_query;
$group = $wp_query->get( 'group' );
$value = $wp_query->get('value');