私は次のスニペットを使用してページネーションを出力しています:
// get the current page
if ( get_query_var('paged') ) {
$current_page = get_query_var('paged');
} else if ( get_query_var('page') ) {
$current_page = get_query_var('page');
} else {
$current_page = 1;
}
// structure of “format” depends on whether we’re using pretty permalinks
$permalink_structure = get_option('permalink_structure');
$format = empty( $permalink_structure ) ? '&page=%#%' : 'page/%#%/';
echo paginate_links(array(
'base' => get_pagenum_link(1) . '%_%',
'format' => $format,
'current' => $current_page,
'total' => $total,
'mid_size' => 4,
'type' => 'list'
));
パーマリンクタイプをhttp://wordpress/?p=123
に設定し、ページネーションのあるフロントページに静的ページを使用すると、次のような間違ったURLを受け取ります。
http://wordpress/&page=2
の代わりに:
http://wordpress/?page=2
http://wordpress/?page=2
に移動すると、クエリのある現在のURLがベースになるため、ページネーションのリンクも間違っています。次に例を示します。
http://wordpress/?page=2&page=3
書き換えに他のパーマリンクタイプを使用すると、すべて正常に機能します。
このスニペットとフロントページの改ページの解決策を探しています。
助けてくれてありがとう。
PDATE:私の主な問題は&page=%#%
のミスタイプでしたが、実際には&paged=%#%
が必要で、フロントページクエリの&
を?
に切り替えるためにis_front_page()関数で条件を追加します。
私はthinkこれは、コードが厳密にあなたがtelling _するようにしているからです。
$format = empty( $permalink_structure ) ? '&page=%#%' : 'page/%#%/';
注:'&page=%#%'
。
&
と?
の適切な追加を処理する add_query_arg()
を使用してパーマリンク構造を構築してみてください。