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

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

新規登録して質問してみよう
ただいま回答率
85.35%
Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

WordPress

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

PHP

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

プラグイン

プラグイン(plug-in)は、ソフトウェアアプリケーションの機能拡張の為に開発された、一組のソフトウェアコンポーネントのことを指します。

ページネーション

Webアプリケーションにおいて、1ページに収まらないコンテンツを、各ページへのリンクを並べてアクセスしやすくする手法をページネーションと呼びます。

Q&A

解決済

1回答

1647閲覧

カスタム投稿の一覧にページネーションを付けたい。

welcome

総合スコア10

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

WordPress

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

PHP

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

プラグイン

プラグイン(plug-in)は、ソフトウェアアプリケーションの機能拡張の為に開発された、一組のソフトウェアコンポーネントのことを指します。

ページネーション

Webアプリケーションにおいて、1ページに収まらないコンテンツを、各ページへのリンクを並べてアクセスしやすくする手法をページネーションと呼びます。

0グッド

0クリップ

投稿2020/06/24 13:37

編集2020/06/24 14:12

##やりたいこと
カスタム投稿の一覧表示にページネーションを実装したい。

###試したこと
「ワードプレスのカスタム投稿タイプにページ送りを導入する方法」
https://www.moco358.com/archives/3523#i-6
のサイトを参考に実践してみました。
こちらのサイトのページおくりをページ送りを表示させよう。の部分をコピペしてみた所、

<div class="pagination"> <?php 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 .= '%_%'; } echo paginate_links(array( 'base' => $paginate_base, 'format' => $paginate_format, 'total' => $wp_query->max_num_pages, 'mid_size' => 4, 'current' => ($paged ? $paged : 1), 'prev_text' => '« 前へ', 'next_text' => '次へ »', )); ?> </div>

ページネーションのボタンはうまく表示されました。

実際にページネーションのボタン2を押すとURLが表示されます。 http://wordpress/archive-custom/page/2/ **しかし表示されるアーカイブは1ページ目と変わらず、、** (ボタン3を押してpage/3/を表示しても中身は1ページのまま、、、)

ちなみに
コードを更新した後でパーマリンク設定を何も変更せず[変更を保存]を行いました。
コードを更新した後で表示設定の何も変更せず[変更を保存]を行いました。
設定→表示設定→1ページに表示する最大投稿数は6個に指定
カスタム投稿一覧ページの表示数も6個に指定
カスタム投稿のプラグインは「Smart Custom Fields」
カスタムURL設定のプラグイン は「Custom Post Type Permalinks」を使用しています。

<?php $args = array( 'post_type' => 'custom_post', 'posts_per_page' => 6 ,//表示件数(-1で全ての記事を表示) ); $the_query = get_posts( $args ); if ( $the_query ) : foreach ( $the_query as $post ) : setup_postdata( $post );?> <div> <?php // add_image_size( 'thumbnail', 640, 480,true); $img_gallery = SCF::get('custom_img_group'); $img_gallery_item01 = wp_get_attachment_image($img_gallery[0]['custom_img'],'small' ) ; ?> <?php echo $img_gallery_item01; ?> <div class=" custom-title"><?php the_title(); ?></div> <dl> <dt>コメント</dt> <dd><?php echo get_post_meta($post->ID , 'custom_comment' ,true); ?></dd> </div> </div> <?php endforeach; wp_reset_postdata();?> <?php else:?> <?php echo 'データがありません。'; endif; ?> </div> //うまく起動しないページネーション <div class="pagination"> <?php 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 .= '%_%'; } echo paginate_links(array( 'base' => $paginate_base, 'format' => $paginate_format, 'total' => $wp_query->max_num_pages, 'mid_size' => 4, 'current' => ($paged ? $paged : 1), 'prev_text' => '« 前へ', 'next_text' => '次へ »', )); ?> </div>

他に原因としては何が考えられますでしょうか。
どこに手をつけたら良いのか見当がつかなくなってきました。
どなたかご教授いただけますと幸いです。よろしくお願いいたします。

コード <?php $args = array( //ここで表示する投稿の条件を指定する 'post_type' => 'custom', 'posts_per_page' => 6, ); $the_query = new WP_Query( $args ); if ( $the_query->have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post(); ?> <!--ここに投稿が表示される--> <div> <?php // add_image_size( 'thumbnail', 640, 480,true); $img_gallery = SCF::get('custom_img_group'); $img_gallery_item01 = wp_get_attachment_image($img_gallery[0]['custom_img'],'small' ) ; ?> <?php echo $img_gallery_item01; ?> <div class=" custom-title"><?php the_title(); ?></div> <dl> <dt>コメント</dt> <dd><?php echo get_post_meta($post->ID , 'custom_comment' ,true); ?></dd> </div> </div> <?php endforeach; wp_reset_postdata();?> <?php else:?> <?php echo 'データがありません。'; endif; ?> </div> <?php endwhile; wp_reset_postdata(); ?> <?php else: ?> <!--投稿が無かった場合の表示--> <?php endif; ?> <div class="pagination"> <?php 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 .= '%_%'; } echo paginate_links(array( 'base' => $paginate_base, 'format' => $paginate_format, 'total' => $wp_query->max_num_pages, 'mid_size' => 4, 'current' => ($paged ? $paged : 1), 'prev_text' => '« 前へ', 'next_text' => '次へ »', )); ?> </div>

アドバイスいただいたようにループを使用してみました。カスタム投稿だったので、条件付きのものをコピペして使用しています。ただページネーション機能は動かずのままでした。

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

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

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

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

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

guest

回答1

0

ベストアンサー

get_postsを使わずに通常のループを使いましょう。

投稿2020/06/24 13:43

kei344

総合スコア69606

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

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

welcome

2020/06/24 14:14

ありがとうございます。通常ループとあったのですが、カスタム投稿であったため条件付きのものを利用してみました。実践してみたもののページネーションは動かずじまいでした。色々と記述を試みてみます。
kei344

2020/06/24 14:22

(2回目)通常ループを使いましょう。 カスタム投稿でも関係ないです。
welcome

2020/06/24 14:27

通常ループにしたらうまくいきました。ありがとうございます。呼び出しているphpファイルがarchive-custom.phpであったためにポストタイプの指定は必要なかったのでしょうか?
kei344

2020/06/24 14:32

ルーティングの問題なのでファイルは特に関係ありません。
welcome

2020/06/24 14:39

ルーティングについて勉強しなおしてきます。ありがとうございました。kei様のおかげで非常に助けられております。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問