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

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

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

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

Q&A

解決済

2回答

7186閲覧

wordpressカスタム投稿でページネーション2ページ目がエラーになる。

退会済みユーザー

退会済みユーザー

総合スコア0

WordPress

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

0グッド

0クリップ

投稿2018/01/25 15:07

編集2018/01/26 08:11

wordpressの個別ページpage-sample.phpにカスタム投稿(sample)の記事一覧ページを制作しています。

ページネーションをつけたいのですが、2ページ目がthis page can’t be found.
になり見れません。

下記コードはページねションを作成するために、functions.phpに記入したものです。

php

1//レスポンシブなページネーションを作成する 2function responsive_pagination($pages = '', $range = 4){ 3 $showitems = ($range * 2)+1; 4 5 global $paged; 6 if(empty($paged)) $paged = 1; 7 8 //ページ情報の取得 9 if($pages == '') { 10 global $wp_query; 11 $pages = $wp_query->max_num_pages; 12 if(!$pages){ 13 $pages = 1; 14 } 15 } 16 17 if(1 != $pages) { 18 echo '<ul class="pagination" role="menubar" aria-label="Pagination">'; 19 //1つ戻る 20 echo '<li class="previous"><a href="'.get_pagenum_link($paged - 1).'"><span>Previous</span></a></li>'; 21 //番号つきページ送りボタン 22 for ($i=1; $i <= $pages; $i++) { 23 if (1 != $pages &&( !($i >= $paged+$range+1 || $i <= $paged-$range-1) || $pages <= $showitems )) { 24 echo ($paged == $i)? '<li class="current"><a>'.$i.'</a></li>':'<li><a href="'.get_pagenum_link($i).'" class="inactive" >'.$i.'</a></li>'; 25 } 26 } 27 //1つ進む 28 echo '<li class="next"><a href="'.get_pagenum_link($paged + 1).'"><span>Next</span></a></li>'; 29 echo '</ul>'; 30 } 31}

出力のコードは下記です。(page-sample.php)

php

1<?php 2 $args = array( 3 'post_type' => array('sample'), 4 'paged' => $paged, 5 'posts_per_page' => 6, 6 ); 7 ?> 8 <?php query_posts( $args ); ?> 9 <?php if (have_posts()) : ?> 10 <?php while (have_posts()) : the_post(); ?> 11 <article class="voice_article"> 12 <div class="thumbnail"> 13 <a href="<?php the_permalink(); ?>"><?php the_post_thumbnail('voice'); ?></a> 14 </div> 15 <div class="voice-article-title"> 16 <?php $cat = get_the_category(); ?> 17 <?php $cat = $cat[0]; ?> 18 <p><?php echo get_cat_name($cat->term_id); ?></p> 19 <h3><?php the_title(); ?></h3> 20 </div> 21 </article> 22 <?php endwhile; ?> 23 <?php else : ?> 24 <p>表示する記事はありませんでした。</p> 25 <?php endif; ?> 26<!--ページネーション--> 27<?php if (function_exists('responsive_pagination')) { 28responsive_pagination($additional_loop->max_num_pages); 29} ?>

カスタム投稿に使ったプラグインはCustom Post Type UIです。
ページネーションはこちらのサイトを参考にしました。

標準で準備されている、投稿の一覧を個別ページ(page-blog.php)で同じようにしましたが、そちらは問題なく表示されました。
投稿一覧の個別ページでは 上記コードより'post_type' => array('sample'),を抜きました。

いろいろ調べましたが解決できませんでした、ご協力よろしくお願いいたします。

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

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

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

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

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

guest

回答2

0

$pagedは取れてますよね?
ページネーションとquery_posts()は相性が悪いと良く聞きますので
WP_Queryクラスを使ってみてはいかがでしょう?

<?php $paged = get_query_var('paged') ? get_query_var('paged') : 1; $args = array( 'post_type' => array('sample'), 'paged' => $paged, 'posts_per_page' => 6, ); ?> <?php $myquery = new WP_Query($args); ?> <?php if ($myquery->have_posts()) : ?> <?php while ($myquery->have_posts()) : $myquery->the_post(); ?>

投稿2018/01/26 01:30

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

退会済みユーザー

退会済みユーザー

2018/01/26 07:46

ご回答ありがとうございます!! コードを試してみたところ、ページネーション自体が表示されないようになってしまいました。
退会済みユーザー

退会済みユーザー

2018/01/26 07:54

responsive_pagination() 関数呼んでますか?提示のコードには見当たりませんが
退会済みユーザー

退会済みユーザー

2018/01/26 08:12

すいません。提示のコードの後に入れています。コード追記しました。
退会済みユーザー

退会済みユーザー

2018/01/26 08:19

うーん、$additional_loopが未定義? responsive_pagination($myquery->max_num_pages); に変更したらどうなるでしょう?
退会済みユーザー

退会済みユーザー

2018/01/26 08:22

もしくは引数消して responsive_pagination(); で試してみて下さい。
退会済みユーザー

退会済みユーザー

2018/02/08 11:36

すいません。コメントが送れていませんでした。 先ほど解決して、気がつきました。すいません。 固定ページのurlとスラッグ名が被っているという初歩的なミスでした。 勉強になりました。ありがとございます。
guest

0

ベストアンサー

固定ページのurlとスラッグ名が被っているというミスでした。

固定ページのurlを変更することで解決しました。

投稿2018/02/08 11:36

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問