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

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

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

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

PHP

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

ループ

ループとは、プログラミングにおいて、条件に合致している間、複数回繰り返し実行される箇所や、その制御構造を指します

解決済

wordpress ページャーがうまく機能しない(2ページ目までしか表示されない/表示件数がワードプレス側の設定とちがう)

benkyosuruo
benkyosuruo

総合スコア0

WordPress

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

PHP

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

ループ

ループとは、プログラミングにおいて、条件に合致している間、複数回繰り返し実行される箇所や、その制御構造を指します

2回答

0評価

0クリップ

77閲覧

投稿2020/03/20 08:21

編集2022/01/12 10:58

カスタム投稿タイプと通常投稿にページャーの設置をしました。

###問題
通常投稿のページャーは問題なく動きますが、カスタム投稿タイプに関しては
・2ページ目までしか表示されない
・ワードプレスの管理画面から設定している表示件数分表示されず5件というどこからきたのかわからない件数分表示されてしまう(コードの中には特に表示件数の設定はされていないつもりです)

###実装したい事
・投稿がある場合は2ページ目以降も全て表示したい
・ワードプレスの表示件数とは関係なくカスタム投稿タイプに関しては1ページにつき10件表示したい

###前提
・カスタム投稿タイプはarchive-news.php、通常投稿はarchive.php
・wordpress管理画面の表示件数設定は6件
・archive.phpは他にメインループが使われている、archive-news.phpはサブループと一緒に使われている
・ページャーコードに関してはどちらのページも同じものを使用

###調べた自分なりの仮説
・archive-news.phpはサブループと使われている事で問題が起きていて、それぞれ別のページャー用のコードを記述しなければいけない?(使い回しできない?)→サブループで使えるというコードでページャーを作成してみたが同じ結果
・以前に通常投稿でページャーの2ページ目が表示されなかった時に、functions.phpからquery_posts('showposts=6');の記載を消去しています

もとのコードの理解がないままページャーを作成してしまい、どこを修正していいのかわからない状態です。(そもそもメインループサブループもままなりません)理解の薄い初心者の質問で申し訳ございませんが、ご助力をお願いします。

functions.php

//Pagenation function pagination($pages = '', $range = 2) { $showitems = ($range * 2)+1; global $paged; if(empty($paged)) $paged = 1; if($pages == '') { global $wp_query; $pages = $wp_query->max_num_pages; if(!$pages) { $pages = 1; } } if(1 != $pages) { echo "<div class=\"pagenation\">\n"; echo "<ul>\n"; if($paged > 1) echo "<li class=\"prev\"><a href='".get_pagenum_link($paged - 1)."'>Prev</a></li>\n"; for ($i=1; $i <= $pages; $i++) { if (1 != $pages &&( !($i >= $paged+$range+1 || $i <= $paged-$range-1) || $pages <= $showitems )) { echo ($paged == $i)? "<li class=\"active\">".$i."</li>\n":"<li><a href='".get_pagenum_link($i)."'>".$i."</a></li>\n"; } } if ($paged < $pages) echo "<li class=\"next\"><a href=\"".get_pagenum_link($paged + 1)."\">Next</a></li>\n"; echo "</ul>\n"; echo "</div>\n"; } }

archive-news.php

} ?> </div> <p class="news-list__txt"> <?php the_title(); ?> </p> </a> </li> <?php endif; ?> <?php endforeach; endif;?> <?php //Pagenation if (function_exists("pagination")) { pagination($additional_loop->max_num_pages); } ?> </main> <aside class="sidebar__contents"> <div class="sidebar-item"> <p class="sidebar-item__ttl">新着記事</p> <?php $args = array( 'post_type' => 'news', // 'posts_per_page' => 5, 'post_status' => 'publish', ); ?> <?php $my_posts = get_posts( $args ); ?> <ul class="sidebar-item__menu"> <?php global $post; if($posts): foreach($my_posts as $post): setup_postdata($post);

足りない情報があればすみません。コメントいただけると助かります。
お手数ですがよろしくお願いします。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

WordPress

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

PHP

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

ループ

ループとは、プログラミングにおいて、条件に合致している間、複数回繰り返し実行される箇所や、その制御構造を指します