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

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

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

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

PHP

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

Q&A

解決済

1回答

1043閲覧

Wordpressでページネーションの先頭ページから「≪ 先頭」「< 1つ戻る」を消し、最後のページから「1つ進む >」「最後尾 ≫」を消したい

teracoji

総合スコア7

WordPress

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

PHP

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

0グッド

1クリップ

投稿2018/04/28 01:29

前提・実現したいこと

https://coliss.com/articles/blog/wordpress/how-to-build-a-wordpress-post-pagination-without-plugin.html
こちらのページを参考にwordpressのアーカイブページにページネーションを作成いたしましたが、表示されません。

以下の4箇所を省くと表示されるのですが、先頭ページまたは最後のページの、「≪ 先頭」「< 1つ戻る」、「1つ進む >」「最後尾 ≫」がそれぞれ表示されなくなります。

if($paged > 2 && $paged > $range+1 && $showitems < $pages)
if($paged > 1 && $showitems < $pages)
if ($paged < $pages && $showitems < $pages)
if ($paged < $pages-1 &&  $paged+$range-1 < $pages && $showitems < $pages)

ちなみに元の参考ページをそのままコピペしても同じ条件で表示されません。

お手数をおかけいたしますが、お分かりになる方がいらっしゃいましたらご教示いただけると幸いでございます。
また、別の方法でもよいので同じことが可能であれば、ご教示いただけると幸いでございます。

どうぞよろしくお願いいたします。

functions.phpのソースコード

PHP

1function pagination($pages = '', $range = 2){ 2 $showitems = ($range * 2)+1; 3 4 global $paged; 5 if(empty($paged)) $paged = 1; 6 7 if($pages == '') { 8 global $wp_query; 9 $pages = $wp_query->max_num_pages; 10 if(!$pages){ 11 $pages = 1; 12 } 13 } 14 15 if(1 != $pages) { 16 echo '<ul class="pagination" role="menubar" aria-label="Pagination">'; 17 //先頭へ 18 if($paged > 2 && $paged > $range+1 && $showitems < $pages) echo '<li class="first"><a href="'.get_pagenum_link(1).'"><span>&Lt; 先頭</span></a></li>'; 19 //1つ戻る 20 if($paged > 1 && $showitems < $pages) echo '<li class="previous"><a href="'.get_pagenum_link($paged - 1).'"><span>&lt; 1つ戻る</span></a></li>'; 21 22 //1つ進む 23 if ($paged < $pages && $showitems < $pages) echo '<li class="next"><a href="'.get_pagenum_link($paged + 1).'"><span>1つ進む &gt;</span></a></li>'; 24 //最後尾へ 25 if ($paged < $pages-1 &&  $paged+$range-1 < $pages && $showitems < $pages) echo '<li class="last"><a href="'.get_pagenum_link($pages).'"><span>最後尾 &Gt;</span></a></li>'; 26 echo '</ul>'; 27 } 28}

テンプレートファイルのソースコード

PHP

1<?php if (function_exists('pagination')) { 2 pagination($additional_loop->max_num_pages); 3} ?>

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

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

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

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

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

guest

回答1

0

ベストアンサー

以下の4箇所を省くと表示される

とある

if(1 != $pages) {

表示するためにはif(1 != $pages) {内部のechoが動く必要がある
そのため、上記if文は機能していると推測できる。

先頭ページまたは最後のページの、「≪ 先頭」「< 1つ戻る」、「1つ進む >」「最後尾 ≫」がそれぞれ表示されなくなります。

ここが引っかかる。下記if文を除いている状態なのだから、いつでも全て表示されるのでは?

if($paged > 2 && $paged > $range+1 && $showitems < $pages) if($paged > 1 && $showitems < $pages) if ($paged < $pages && $showitems < $pages) if ($paged < $pages-1 && $paged+$range-1 < $pages && $showitems < $pages)

主要なkeywordである
$pages,$paged,$range,$showitemsなどを片っ端から出力して、値を見てみると良いと思います。

投稿2018/04/28 03:01

kobayashitomoya

総合スコア40

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

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

teracoji

2018/04/28 05:16

ご返信ありがとうございます。 > ここが引っかかる。下記if文を除いている状態なのだから、いつでも全て表示されるのでは? 失礼いたしました、「表示されない」ではなく、「表示されてしまう」の間違いでございます。 >主要なkeywordである >$pages,$paged,$range,$showitemsなどを片っ端から出力して、値を見てみると良いと思います。 ありがとうございます、試してみてまたコメントさせていただきます。 どうぞよろしくお願いいたします。
teracoji

2018/04/28 06:01

度々失礼致します。 $pages,$paged,$range,$showitemsの出力を試したところ、全て正常に出力されているようです。 他に何かお気づきの点があれば、教えていただけると幸いでございます。 どうぞよろしくお願いいたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問