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

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

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

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

PHP

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

Q&A

解決済

1回答

1370閲覧

WordPressのページネーションについて

tshinno0214

総合スコア13

WordPress

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

PHP

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

0グッド

0クリップ

投稿2019/06/06 09:36

ワードプレスにて、お知らせの一覧を固定ページで作成中です。
記事の表示とページネーションの表示も問題ないのですが、
ページネーションについて仕様の条件を満たせておらず、試行錯誤中です。

WP_Query を利用したサブループの外に下記のように記述しています。

<nav class="text-center"> <?php if ($the_query->max_num_pages > 1) { echo paginate_links(array( 'base' => get_pagenum_link(1) . '%_%', 'format' => '?paged=%#%', 'current' => max(1, $paged), 'type' => 'list', 'prev_text' => '<', 'next_text' => '>', 'total' => $the_query->max_num_pages )); }else{ echo '<ul class="page-numbers">'; echo ' <li><span href="#" class="prev page-numbers">&lt;</span></li>'; echo ' <li><span class="page-numbers current">1</span></li>'; echo ' <li><span href="#" class="next page-numbers">&gt;</span></li>'; echo '</ul>'; } ?> </nav>

現在の状況が下記の画像です。
イメージ説明

これを
1ページ目にも左矢印が出るように
そして最後のページには右矢印が出るようにしたいです。
画像で見ると下記のようにしたいです。
イメージ説明

なにとぞご教示のほど宜しくお願い致します。

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

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

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

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

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

miyabi_takatsuk

2019/06/06 16:12 編集

その矢印って、進む(戻る)ことができることを示す物かと思うので、それでいい気もするのですが・・・。 < ページネーション群 >って意味合いで使いたい、ということでしょうか? また、公式ドキュメントにて、細かい使い方が記載ありますので、 解決策見つかるかもしれないので、そちらもご覧ください。 https://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/paginate_links
tshinno0214

2019/06/07 00:35

動作的には問題ないのですが、デザイン仕様を満たすために必要となっています… 1ページ目、つまり戻るページが無くともprevの矢印(アンカーリンクなし)を表示、かつ、最後のページ、つまり次のページが無くともnextの矢印を装飾として表示させたいという感じです。 公式も見て色々試行錯誤しているのですが、phpの勉強不足というのもありなかなか出来ず、という状況です…
miyabi_takatsuk

2019/06/07 00:41

なるほど・・・。 使用しているメソッドは、WordPressメソッドのようなので、自由度はないかもしれないので、 オプションでもできなければ、 対処療法で、吐き出し文字列を変えるか、しかないでしょうね。 もしくは、ページネーションのロジックを自作するか、ですかね。 私が掲示したURLはご覧になりましたか?
tshinno0214

2019/06/07 06:22

他の方のご教示により解決いたしました! 掲示していただいたページも見ておりましたが、その中のオプションを理解できてなかったようです… これからまた勉強します! ご丁寧な対応ありがとうございました。
guest

回答1

0

ベストアンサー

'type' => 'array' に変更して、paginate_links 関数の戻り値(この場合は配列)に「<」「>」を追加すると可能だと思います。

php

1 if ( $the_query->max_num_pages > 1 ) { 2 $page_links = paginate_links( array( 3 'base' => get_pagenum_link( 1 ) . '%_%', 4 'format' => '?paged=%#%', 5 'current' => max(1, $paged), 6 'type' => 'array', // 1. 'array' に変更 7 'prev_text' => '<', 8 'next_text' => '>', 9 'total' => $the_query->max_num_pages 10 ) ); 11 // 2. 「<」 がない場合は追加 12 if ( strpos( $page_links[0], 'prev page-numbers' ) === false ) { 13 array_unshift( $page_links, '<span class="prev page-numbers">&#x3c;</span>' ); 14 } 15 // 3. 「>」がない場合は追加 16 if ( strpos( $page_links[count( $page_links ) - 1], 'next page-numbers' ) === false ) { 17 array_push( $page_links, '<span class="next page-numbers">&#x3e;</span>' ); 18 } 19 // 4. 'type' => 'list' の場合と同じ処理 20 $r = ''; 21 $r .= "<ul class='page-numbers'>\n\t<li>"; 22 $r .= join( "</li>\n\t<li>", $page_links ); 23 $r .= "</li>\n</ul>\n"; 24 echo $r; 25 } else { 26 // 以下省略

type の指定によってどのような戻り値になるかは、ソースコードをご自身で眺めてみてください。

投稿2019/06/07 03:36

YukiYamashina

総合スコア1011

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

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

tshinno0214

2019/06/07 06:24

できました! 配列にして戻り値… 以前学習した記憶はあるのですが実用には至っていませんでした… コードまで作成いただき、ありがとうございました! また改めて勉強しなおします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問