WP-PageNaviが動かない場合の解決策

WP-PageNaviが動かない場合の解決策

■必要な設定は揃っているか
▽クエリの設定

//ページの取得
$paged   = get_query_var('paged') ? get_query_var('paged') : 1;
$param   = array(
    // ページを設定
    'paged'          => $paged,
);

▽ナビの呼び出し

<?php if(function_exists('wp_pagenavi')){ wp_pagenavi(array('query'=>$wpQuery)); } ?>

▽データのリセット

<?php wp_reset_postdata(); ?>

———————————————

■WordPressの管理画面の表示設定を変更
「1ページに表示する最大投稿数」をWP_Queryで指定している件数(posts_per_page)よりも小さい数にしてみる。

■ページ数を取得する記述が抜けている

$paged = get_query_var('paged') ? get_query_var('paged') : 1;
$args = array(
    'paged' => $paged ,
);

■wp_queryを使用している場合には、wp_pagenavi();の記述を変更する
wp_pagenavi(array(‘query’ => $wpQuery))にしてみる

■pagedの取得を変えてみる
▽通常
$paged = get_query_var(‘paged’) ? get_query_var(‘paged’) : 1;
‘paged’ => $paged,

▽固定ページをフロントページにするとき
$paged = get_query_var(‘page’);
‘paged’ => $paged,

▽直接数字を入れてみる
‘paged’ => 2,
直接数字を入れると、そのページ数に移動するはず。
これ動かない場合、根本的に設定が間違っている可能性がある。

■Top Level Categories Fixを導入してみる
「/page/2/」以降が404エラーになる場合、上記プラグインで解決する場合がある

———————————————

■検索結果ページに表示している場合pagedが正しく取れない場合があった
 ※http://hoge.com/search/のようにディレクトリを挟んでいる

pagedに数字を入れて確認 → ページを移動した為、ページ数が取れていないと判断。
URLからページ数を取得する処理で対応。

// 現在のページ数を取得
$path_arr = explode('/', $_SERVER['REQUEST_URI']);
$path_arr = array_reverse($path_arr);
$dir = $path_arr[1];

if (ctype_digit($dir)) {
    $paged = $dir;
} else {
    $paged = 1;
}

参考サイト

2
2
2