質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

1回答

2234閲覧

【WordPress】1ページ目と2ページ目以降で表示件数を変更した際に、最大ページ数が合わない

goootooo

総合スコア10

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2019/01/05 17:24

編集2019/01/06 00:29

前提・実現したいこと

Wordpress初心者です。

1ページ目と2ページ目以降で表示件数を変更することは出来たのですが、ページナビの最大ページ数が合いません。
(そのため、1ページ目にある最終ページに遷移しようとするとページがありませんのエラーになります。)

WordPressで1ページ目と2ページ目以降で表示件数を変更する
やりたいことは上記リンク先の形になりますが、twentyfourteenの子テーマを使っていないため、
該当のソースコードの17行目「// twentyfourteen のコードを元にしています」から下の、ページナビの最大ページを合わせるためのコードが全く動作しません。
twentyfourteenの子テーマを使っていない場合に最大ページ数を合わせる方法をアドバイスいただきたいです。

参考画像

1ページ目のページナビ
イメージ説明
2ページ目以降のページナビ
イメージ説明

該当のソースコード

PHP

1define('POSTS_PER_PAGE_FOR_1ST',5); 2define('POSTS_PER_PAGE_FOR_2ND',10); 3 4add_action( 'pre_get_posts', 'mypaging' ); 5function mypaging($query) { 6 if ( is_admin() || ! $query->is_main_query() ) { 7 return; 8 } 9 10 $paged = get_query_var( 'paged' ) ? intval( get_query_var( 'paged' ) ) : 1; 11 if ($paged >= 2){ 12 $query->set('offset',POSTS_PER_PAGE_FOR_1ST+($paged-2)*POSTS_PER_PAGE_FOR_2ND); 13 $query->set('posts_per_page',POSTS_PER_PAGE_FOR_2ND); 14 } 15} 16 17// twentyfourteen のコードを元にしています 18if ( ! function_exists( 'twentyfourteen_paging_nav' ) ) : 19 /** 20 * Display navigation to next/previous set of posts when applicable. 21 * 22 * @since Twenty Fourteen 1.0 23 */ 24 function twentyfourteen_paging_nav() { 25 // Don't print empty markup if there's only one page. 26 if ( $GLOBALS['wp_query']->max_num_pages < 2 ) { 27 return; 28 } 29 30 $paged = get_query_var( 'paged' ) ? intval( get_query_var( 'paged' ) ) : 1; 31 $pagenum_link = html_entity_decode( get_pagenum_link() ); 32 $query_args = array(); 33 $url_parts = explode( '?', $pagenum_link ); 34 35 if ( isset( $url_parts[1] ) ) { 36 wp_parse_str( $url_parts[1], $query_args ); 37 } 38 39 $pagenum_link = remove_query_arg( array_keys( $query_args ), $pagenum_link ); 40 $pagenum_link = trailingslashit( $pagenum_link ) . '%_%'; 41 42 $format = $GLOBALS['wp_rewrite']->using_index_permalinks() && ! strpos( $pagenum_link, 'index.php' ) ? 'index.php/' : ''; 43 $format .= $GLOBALS['wp_rewrite']->using_permalinks() ? user_trailingslashit( 'page/%#%', 'paged' ) : '?paged=%#%'; 44 45 // この行を追加 46 $total = 1 + ceil(($GLOBALS['wp_query']->found_posts - POSTS_PER_PAGE_FOR_1ST)/POSTS_PER_PAGE_FOR_2ND); 47 48 // Set up paginated links. 49 $links = paginate_links( array( 50 'base' => $pagenum_link, 51 'format' => $format, 52 'total' => $total, 53 'current' => $paged, 54 'mid_size' => 1, 55 'add_args' => array_map( 'urlencode', $query_args ), 56 'prev_text' => __( '&larr; Previous', 'twentyfourteen' ), 57 'next_text' => __( 'Next &rarr;', 'twentyfourteen' ), 58 ) ); 59 60 if ( $links ) : 61 62 ?> 63 <nav class="navigation paging-navigation" role="navigation"> 64 <h1 class="screen-reader-text"><?php _e( 'Posts navigation', 'twentyfourteen' ); ?></h1> 65 <div class="pagination loop-pagination"> 66 <?php echo $links; ?> 67 </div><!-- .pagination --> 68 </nav><!-- .navigation --> 69 <?php 70 endif; 71} 72endif;

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

CHERRY

2019/01/05 23:01

うまくいきませんだけではどのような状況かわかりませんので、発生している内容を具体的に記載してください。
goootooo

2019/01/06 00:31 編集

追記・修正の依頼ありがとうございます。曖昧な言葉を使用してしまい申し訳ありません。発生している内容について、質問を修正しました。よろしくお願い致します。
CHERRY

2019/01/06 03:55 編集

お使いのテーマ名と index.php 等で、ページングを出力している部分のテンプレートファイルの内容を記載していただけないでしょうか?
guest

回答1

0

関数twentyfourteen_paging_navをページングの箇所で使用していますか?

投稿2019/01/06 02:14

kei344

総合スコア69398

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問