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

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

ただいまの
回答率

90.51%

  • WordPress

    8906questions

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

【wordpress】ページネーションを表示させたい

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 2,331

ami15821

score 44

前提・実現したいこと

できればプラグインを使わずにページネーションを表示させるようにして、記事一覧がちゃんとページごとに表示されるようにしたいです。

発生している問題・エラーメッセージ

実装箇所に何も表示されません。
参考サイト(http://11neko.com/wordpress-12/)ではコピペだけで、とりあえず表示はされると記載されていたのですが。。。

該当のソースコード

single-beautiful.php

<div class="blog_wrap">
  <div class="mt_30 clearfix">
    <div class="blog_l">
  <div class="content scr01">
     <p class="blog_news">blog一覧</p>
     <?php $args = array(
         'numberposts' => 4,                //表示(取得)する記事の数
         'post_type' => 'blog_page01'    //投稿タイプの指定
         );
      $customPosts = get_posts($args);
      if($customPosts) : foreach($customPosts as $post) : setup_postdata( $post ); ?>

    <ul class="border clearfix">
      <div class="col_l">
<!-- ここから -->
    <figure class="thumbnail">
      <a href="<?php the_permalink(); ?>">
        <?php 
            if(has_post_thumbnail()) {
                the_post_thumbnail();
            } else {
                echo '<img src="'.get_template_directory_uri().'/images/no_image.png" width="120" height="120"/>';
        } ?>
     </a>
   </figure>
<!-- ここまで -->
      </div>
<!-- col_l -->
      <div class="col_r">
         <li class="blog_topic"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
         <li class="day01"><?php the_time('Y年n月j日'); ?></li>
         <li class="topic_text03"><a href="<?php the_permalink() ?>"><?php echo mb_substr(strip_tags($post-> post_content),0,100).'...'; ?> </a></li>
      </div>
    </ul>
       <?php endforeach; ?>

       <?php else : //記事が無い場合 ?>
       <li><p>記事はまだありません。</p></li>
       <?php endif;
       wp_reset_postdata(); //クエリのリセット ?>

  </div>
  <!-- content scr -->

<div class="mb_40 clearfix">

<div class="pagination">
    <?php
    global $wp_query;
    $big = 999999999;
    echo paginate_links( array(
        'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
        'format' => '?paged=%#%',
        'current' => max( 1, get_query_var('paged') ),
        'total' => $wp_query->max_num_pages
    ) );
    ?>
</div>
<!--pagination -->

</div>
<!--mb_40 clearfix -->

 </div>
<!--blog_l -->

<?php get_sidebar(); ?>

  </div>
   <!--clearfix-->
</div>
<!-- blog_wrap-->


index.php

<div class="pagination">
    <?php
    global $wp_query;
    $big = 999999999;
    echo paginate_links( array(
        'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
        'format' => '?paged=%#%',
        'current' => max( 1, get_query_var('paged') ),
        'total' => $wp_query->max_num_pages
    ) );
    ?>
</div>
<!--pagination -->

試したこと

1.投稿ページで実装して表示されましたページネーションを同じ要領で実装しました。
結果、何も表示されず読み込みはされていない様子です。
2.single-beautiful.phpのほかに、別サイトのindex.phpにも同じコードを記載しました。どどちらも表示されていません。
3.プラグイン『WP-PageNavi』をインストールして、ページネーションを表示させたい箇所に読み込みコードを入れましたが、chromeの検証で確認しても読み込まれてないようです。
4.デフォルトテーマに戻してページネーションのタグを貼り付けて表示の確認をしました。デフォルトでは表示されました。

よろしくお願いいたします。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

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

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

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

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

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

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

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

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • kei344

    2016/06/14 19:58

    single-beautiful.php でquery_postsなどを使用しておられませんか?また、デフォルトのテーマで同じページネーション用コードを入れて動作するか確認してみてください。

    キャンセル

  • ami15821

    2016/06/15 11:16

    ご指摘ありがとうございます。
    デフォルトのテーマに同じページネーション用コードを入れて動作確認をしたところ、表示されました。
    single-beautiful.php でquery_postsは、使用してないとは思うのですが...

    キャンセル

  • kei344

    2016/06/15 11:18

    編集で削除された部分にはquery_postsがありますが、掲示されているコードが現状のコードと考えて良いんですね?

    キャンセル

  • ami15821

    2016/06/15 11:21

    はい、ややこしい書き方になってしまって失礼いたしました。
    色々なコードを試しては削除してを繰り返していたため、余計なコードを記載してしまっておりました。

    キャンセル

回答 2

checkベストアンサー

+1

blog.php は何に使っているのでしょうか。WordPressの標準テンプレートでは使用しない命名規則です。

また、single-beautiful.php は投稿タイプ「beautiful」の記事アーカイブ用テンプレートですが、なぜそれに一覧を表示させようとしているのでしょうか。その投稿タイプの記事全てが一覧ページになります。

投稿タイプのhas_archiveを正しく設定しているならexample.com/beautiful/に一覧ページが表示されるはずです。その際には archive-beautiful.php が一覧用テンプレートになります。

get_postsはサイドバーなどでページのコンテキストから離れた記事一覧を取得することに使用することが多く、通常のテンプレートではWhileを使ったいつものループを使うようにしたほうが良いです。

【Cat Speak | カスタム投稿タイプのアーカイブページを作成する】
http://cat-speak.net/2012/02/29/433/

【カスタム投稿タイプの一覧ページの作成 | Web Design Leaves】
http://www.webdesignleaves.com/wp/wordpress/965/

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/06/15 20:58

    ご回答、ありがとうございます。
    >blog.php は何に使っているのでしょうか。WordPressの標準テンプレートでは使用しない命名規則です。

    大変失礼いたしました。
    blog.php につきましては、私の過失でして、一つのwordpressの管理画面で2つのサイトを管理できるようにしていまして、どちらでもページネーションが表示されていなかったためうっかり今回質問しているサイトと対になるサイトのblog.php を記載しておりました。
    なので、blog.php については今回の質問ページとは異なるので(起きてる現象はおなじですが)省いて考えてくださいませ。
    こちら、削除したほうがいいかもしれませんが、消してしまうのはよろしくないでしょうか?

    >また、single-beautiful.php は投稿タイプ「beautiful」の記事アーカイブ用テンプレートですが、なぜそれに一覧を表示させようとしているのでしょうか。その投稿タイプの記事全てが一覧ページになります。

    上記のように、詳細の話になりますとひとつのサイトで2つのサイトのように表示させてほしいという案件を受けておりまして、マルチサイト化をwordpressに実装いたしました。
    作り始めた当初はマルチサイト化のことを知らなかったため、beautifulサイトの記事一覧という意味合いでsingle-beautiful.phpにしております。

    キャンセル

  • 2016/06/15 21:15

    > beautifulサイトの記事一覧という意味合いでsingle-beautiful.phpにしております。
    WordPress のテンプレートシステムは特定の名前のものを取得するようになっています。それはマルチサイトでも同じです。そのため、なんらか別の方法でご自身の取得したいテンプレートを取得されているのでしょう。

    少なくともテンプレートは別の名前をお使いください。標準のテンプレートが取得するものと競合してしまう可能性があります。

    また、独自の方法でテンプレートを呼び出して、通常と違う運用をされている以上、標準のページネーションなどは使用できないと思ったほうが良いです。

    > blog.php
    内容把握しました。置いておいてもどちらでも良いと思います。

    キャンセル

  • 2016/06/16 04:21

    kei344様

    ありがとうございます。
    wordpressの仕組みが少しずつですがわかってきました。

    ブログ一覧ページのテンプレートをpage-blog.phpに変更しましたら、ページネーションが表示されるようになりました!

    キャンセル

  • 2016/06/16 09:52

    一覧するページなら archive-blog.php になると思いますが・・・。固定ページで一覧を作られているということでしょうか。一度書籍などで全体像を把握されたほうが良いと思います。

    【[WordPress] テンプレートファイルの階層・優先順位 | ぶぶりんブログ】
    http://buburinweb.wp.xdomain.jp/wordpress-template-faile

    【WordPressのテンプレートファイルの種類とテンプレート階層 | Mignon Style】
    http://mignonstyle.com/wordpress-template-file/

    【WordPressのテンプレートファイルの種類と使い方を覚える | Webデザインとグラフィックの総合情報サイト - MdN Design Interactive -】
    http://www.mdn.co.jp/di/articles/2782/?page=8

    キャンセル

  • 2016/06/16 10:38

    固定ページで一覧を作っています。
    正規のやり方じゃないんですね。。。

    参考サイトありがとうございます。
    もしオススメの書籍もあれば教えて下さい。

    キャンセル

  • 2016/06/16 10:49

    書籍は比較的新しい入門書(と難しそうなもの)を数冊買って、見比べながら理解するのが手早いと思います。基本的に同じことをそれぞれ別の方法(手順)で説明しているはずなので、理解がしやすいと思っていつもこの方法を採っています。

    キャンセル

  • 2016/06/16 10:55

    ありがとうございます。

    キャンセル

0

「wordpress ページネーション」で検索したら1番上に↓がありました。
こちらは試されましたでしょうか?
WordPress プラグインなしでシンプルなページネーションを実装

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/06/15 11:10

    回答ありがとうございます。

    こちらのサイト、1度試しましたが、表示されませんでした...

    キャンセル

  • 2016/06/15 11:14

    そうなんですね・・・では別のところに原因があるかも。
    PHPは使ったことないので、あまりお役に立てず。すいません。

    キャンセル

  • 2016/06/15 11:19

    とんでもございません。
    自分では手に余っている状態ですから
    ご対応していただけただけで、ありがたいことです。

    お時間いただき、ありがとうございました。

    キャンセル

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

  • WordPress

    8906questions

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