サポート » 使い方全般 » 固定ページにページ送り

  • mentos2020

    (@mentos2020)



    固定ページにページ送りを付けようと下記コードをfunction.phpに追加したのですが
    上手く機能しません。

    
    function my_bootstrap_pagination($pages='')
    {
        global $wp_query;
        // 現在のページ番号を取得
        $paged = $wp_query->get( 'paged' );
        // ページ毎の記事件数取得
        $posts_per_page = get_option('posts_per_page');
        // paged=0あるいはpaged=1 かつ 表示する記事件数がページ毎の記事件数より少ない場合はページネーションは不要
        if ( ( ! $paged || $paged < 2 ) && $wp_query->found_posts < $posts_per_page )
            return; 
        // 現在のページ番号の前後何ページ分のリンクを表示するか
        $range = 1; // 前後それぞれのページ数を指定
        $showitems = ($range * 2)+1; // 前+後ろ+現在のページ
        // 1ページ目のときは、値が0なので、1にナンバリングする
        global $paged;
        if(empty($paged)) $paged = 1;
        // $pagesは何ページ目までをページネーションに表示するかを指定する
        // たとえば、$pages=3とか指定してあると、アーカイブページが10ページあっても、3ページ分までのページネーションしか表示されない
        // 普通は未指定で、全ページを表示させる
        if($pages == ''){
            global $wp_query;
            $pages = $wp_query->max_num_pages; // 総ページ数
            if(!$pages){
                $pages = 1;
            }
        }
        // 全ページ数が1ページでなければ、ページネーションを表示する
        if(1 != $pages){
            echo '<ul class="pagination">';
            // Prevリンク
            if( $paged > 1 )
            echo '<li><a href="'.get_pagenum_link($paged-1).'">Prev &lsaquo;</a></li>';
            // 1ページ目のリンク
            echo ( $paged == 1 )?'<li class="active"><span class="current">'.$paged.'</span></li>':'<li><a href="'.get_pagenum_link(1).'">1</a></li>';
            // '...'の区切り または 2ページ目へのリンク
            if( $paged > ($range+1) && ($paged-$range-1) != 1 ) {
                if( $paged-$range == 3 ) {
                    echo '<li><a href="'.get_pagenum_link(2).'" class="inactive">'.(2).'</a></li>';
                }
                else {
                    echo '<li><a>...</a></li>';
                }
            }
            // 現在のページとその前後へのリンク
            for($i=0; $i<$showitems; $i++) {
                if( $paged-$range+$i > 1 && $paged-$range+$i < $pages ) {
                    if( $i == $range ) {
                        echo '<li class="active"><span class="current">'.($paged).'</span></li>';
                    }
                    else {
                        echo '<li><a href="'.get_pagenum_link($paged-$range+$i).'" class="inactive">'.($paged-$range+$i).'</a></li>';
                    }
                }
            }
            // '...'の区切り または 最後から2番目のページ目へのリンク
            if( $paged < ($pages-$range) && ($paged+$range+1) != $pages ) {
                if( $paged+$range == $pages-2 ) {
                    echo '<li><a href="'.get_pagenum_link($pages-1).'" class="inactive">'.($pages-1).'</a></li>';
                }
                else {
                    echo '<li><a>...</a></li>';
                }
            }
            // 最終ページへのリンク
            echo ($paged==$pages)?'<li class="active"><span class="current">'.$pages.'</span></li>':'<li><a href="'.get_pagenum_link($pages).'">'.$pages.'</a></li>';
            // Nextリンク
            if( $paged < $pages )
            echo '<li><a href="'.get_pagenum_link($paged + 1).'">&rsaquo; Next</a></li>';
            echo "</ul>\n";
        }
    }
    

    固定ページだと非表示になる原因は何なんでしょうか?
    アドバイスを頂けないでしょうか、どうか宜しくお願い致します。

1件の返信を表示中 - 1 - 1件目 (全1件中)
  • gblsm

    (@gblsm)

    下記ページのコードを参考になさってはどうでしょう。

    [WordPress] どうしても固定ページテンプレートでページ送り付きのアーカイブが作りたいのよと言う場合
    https://gist.github.com/hissy/6103177

1件の返信を表示中 - 1 - 1件目 (全1件中)
  • トピック「固定ページにページ送り」には新たに返信することはできません。