サポート » 使い方全般 » 固定ページ(page.php)でページャーを動作させる方法はありませんか?

  • 解決済 conte9999

    (@conte9999)


    いつも大変お世話になっております。

    WordPressのテーマ作成について相談させてください。

    固定ページに記事一覧ページを表示させて、18記事ずつページャーに分けて表示させたいのですが、ページャーを設置してページを遷移しても、同じ記事一覧しか表示されません。

    page.phpでページャーを正常に動作させる方法はありませんでしょうか?

    現状、下記のような記述をしております。

    function.php

    // ページナビ
        function pagenavi($args = array()) {
        //デフォルト値
        $defaults = array(
        'class_name' => 'pagenavi', //div 要素のクラス名
        'show_all' => false, //全件表示するかどうか。
        'prev_next' => true, //「前へ」「次へ」のリンクの有無
        'prev_text' => __('« Previous'), //「前へ」のテキスト。
        'next_text' => __('Next »'), //「次へ」のテキスト
        'end_size' => 1, //最初のページと最終のページ部の表示件数(1以上)
        'mid_size' => 3, //現在のページ部分(但し現在のページを含まない)の表示件数(0以上)
        );
        $args = wp_parse_args( $args, $defaults ); //パラメータを解析し、省略されたパレメータにはデフォルト値をセット
        extract( $args, EXTR_SKIP ); //キーを変数名、値を変数の値として処理
        echo '<div class="' .$class_name. '">';
        global $wp_rewrite;
        $paginate_base = get_pagenum_link(1);
        if (strpos($paginate_base, '?') || ! $wp_rewrite->using_permalinks()) {
        $paginate_format = '';
        $paginate_base = add_query_arg('paged', '%#%');
        } else {
        $paginate_format = (substr($paginate_base, -1 ,1) == '/' ? '' : '/') .
        user_trailingslashit('page/%#%/', 'paged');;
        $paginate_base .= '%_%';
        }
        global $paged;
        global $wp_query;
        //paginate_links()の出力を $outputs に格納
        $outputs = paginate_links( array(
        'base' => $paginate_base,
        'format' => $paginate_format,
        'total' => $wp_query->max_num_pages,
        'current' => max( 1, get_query_var('paged') ),
        'show_all' => $show_all,
        'prev_next' => $prev_next,
        'prev_text' => $prev_text ,
        'next_text' => $next_text ,
        'end_size' => $end_size,
        'mid_size' => $mid_size,
        'type' => 'list'
        ));
        //★ ul 要素のクラス名を変更(置換)して出力
        echo str_replace("<ul class='page-numbers'>", "<ul class='pagination'>", $outputs);
        echo '</div>';
        }

    ページャーのコード

    <div class="text-center">
        <?php
        $args = array(
        'prev_text' => '前へ', //「前へ」のテキスト。
        'next_text' => '次へ', //「次へ」のテキスト
        'class_name' => 'pagination' //これはdiv要素のクラスなので必須ではない
        );
        pagenavi($args);
        ?>
    </div>

    お忙しいところお手数をおかけしますが、どうぞご指導のほどよろしくおねがいします。

1件の返信を表示中 - 1 - 1件目 (全1件中)
  • トピック投稿者 conte9999

    (@conte9999)

    いつもお世話になっております。

    すみません!こちら自己解決しました。

    固定ページで全記事一覧を作成する方法を検索して、下記のようなページャーのコードでうまくいきました。

    もっとちゃんと調べれば解決できたことを投稿してしまい申し訳ありません。
    今後ともどうぞよろしくおねがいします。

    <?php
    if ($the_query->max_num_pages > 1) {
    	echo paginate_links(array(
    	'base' => get_pagenum_link(1) . '%_%',
    	'format' => '/page/%#%/',
    	'current' => max(1, $paged),
    	'class' => 'pagination',
    	'prev_text' => '前へ', //「前へ」のテキスト。
    	'next_text' => '次へ', //「次へ」のテキスト
        'type' => 'list',
    	'total' => $the_query->max_num_pages
    	));
    }
    ?>
1件の返信を表示中 - 1 - 1件目 (全1件中)
  • トピック「固定ページ(page.php)でページャーを動作させる方法はありませんか?」には新たに返信することはできません。