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

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

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

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

ページネーション

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

Q&A

解決済

1回答

5926閲覧

トップページにページナビをつけたいです。

golgo

総合スコア16

WordPress

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

ページネーション

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

0グッド

0クリップ

投稿2015/03/04 06:49

今回は、WordPressでWP-PageNaviのプラグインを使って
トップページにページ送りを設置したいです。

最初 前へ 1 2 3 4 5 次へ 最後

こんなイメージです。

http://erofine.link/

こちらのサイトなのですが、
http://design-plus1.com/tcd-w/tcd013
こちらのテンプレを使っています。

どこに、何を追加したりすればよろしいか教えていただきたいです。
よろしくお願いいたします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

トップページを表示するテンプレート(index.php)にある記事一覧を表示する処理の後に
<?php wp_pagenavi(); ?>」を入れます。

lang

1<?php get_header(); ?> 2 3 <div id="primary" class="site-content"> 4 5 <div id="content" role="main"> 6 7 <?php if ( have_posts() ) : ?> 8 9 10 <?php/* --- 記事一覧の表示の処理 --- */ ?> 11 <?php /* Start the Loop */ ?> 12 <?php while ( have_posts() ) : the_post(); ?> 13 <?php get_template_part( 'content', get_post_format() ); ?> 14 <?php endwhile; ?> 15 16 <?php/* --- ここにページ送りを設置するコードを入れます。 --- */ ?> 17 <?php wp_pagenavi(); ?> 18 19 20 <?php else : ?> 21 22 <?php/* 中略(※この部分は記事が何もなかった場合の時の処理です) */ ?> 23 24 <?php endif; // end have_posts() check ?> 25 26 </div><!-- #content --> 27 28 </div><!-- #primary --> 29 30<?php get_sidebar(); ?> 31<?php get_footer(); ?>

![ページ送りの設定の様子]WIDTH:600

投稿2015/03/04 08:03

編集2015/03/04 08:56
nia_tn1012

総合スコア66

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

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

golgo

2015/03/04 08:12

すみません、なにを言っているかまるでわかりません。
golgo

2015/03/04 08:15

回答ありがとうございます。 上記をどの場所に挿入すればよろしいですか?
nia_tn1012

2015/03/04 09:02

こちらこそ、すみません。「こんなイメージです。」にあるリンク先が見れないので、 実際に私が使用しているテーマのテンプレートを例にコードを提示させていただきます。「while ( have_posts() )」~「endwhile;」と書かれている部分の後に入れれば、ページ送りが表示されるはずです。 ページ送りの表示がちょっと異なりますが、これはWP-PageNavi側の設定でそのように表示しているだけです。
golgo

2015/03/05 07:27

お返事ありがとうございます。 リンクが見れなかったのですね。もう一度載せてみます。 http://erofine.link/ エロ動画まとめサイトなのですが、 今使っているテーマのindex.phpには、記事一覧ではなく、 最近の記事一覧ということで、以下が表示されています。 <div id="main_col"> <div id="recent_post"> <h3 class="headline1"><?php _e('Recent post', 'tcd-w'); ?></h3> <?php $args = array('post_type' => 'post', 'numberposts' => 20); $recent_post=get_posts($args); if ($recent_post) { ?> <ul class="clearfix"> <?php foreach ($recent_post as $post) : setup_postdata ($post); ?> <li class="clearfix"> <a class="image" href="<?php the_permalink() ?>"><?php if ( has_post_thumbnail()) { echo the_post_thumbnail('small_size'); } else { echo '<img src="'; bloginfo('template_url'); echo '/img/common/no_image3.jpg" alt="" title="" />'; }; ?></a> <div class="info"> <?php if ($options['show_date'] || $options['show_category']) { ?> <ul class="meta"> <?php if ($options['show_date']) { ?><li class="date"><?php the_time('Y-n-j'); ?></li><?php }; ?> <?php if ($options['show_category']) { ?><li class="category"><?php the_category(', '); ?></li><?php }; ?> </ul> <?php }; ?> <a class="title" href="<?php the_permalink() ?>"><?php trim_title(32); ?></a> </div> </li> <?php endforeach; wp_reset_query(); ?> </ul> <?php } else { ?> <p class="no_post"><?php _e('There is no registered post.', 'tcd-w'); ?></p> <?php }; ?> <?php wp_pagenavi(); ?> </div> <!-- END #recent_post --> というようにnia_tn1012さんがしてくださった <?php wp_pagenavi(); ?>を挿入しています。 これですと、現在記事数が55ありますので、 表示設定で1ページに表示する最大投稿数を20にしているため、 3ページ目まで、ページナビが表示されています。 しかし、2、3ページ目を押してもトップページへ 飛ばされてしまいます。 どこかの記事で調べましたが、この1ページに表示する最大投稿数が 多い値だとこのような現象になるみたいで、改善案としては、 1ページに表示する最大投稿数を1などにして、どこかの数字を 20などにすれば解決するらしいのですが、よくわかりませんでした。 「while ( have_posts() )」~「endwhile;」 という記述がないので、解決策はありますでしょうか?
nia_tn1012

2015/03/06 07:40

そのテンプレートでしたら、 「foreach ($recent_post as $post)」~「endforeach;」 の部分が最新の記事一覧を表示する処理ですので、 「<?php wp_pagenavi(); ?>」の挿入位置は大丈夫です。 「2、3ページ目を押してもトップページへ飛ばされる」件について: index.phpにある ----------------------------------- <div id="main_col"> <div id="recent_post"> <h3 class="headline1"><?php _e('Recent post', 'tcd-w'); ?></h3> <?php $args = array('post_type' => 'post', 'numberposts' => 20); $recent_post=get_posts($args); if ($recent_post) { ?> ----------------------------------- の部分を ----------------------------------- <div id="main_col"> <div id="recent_post"> <h3 class="headline1"><?php _e('Recent post', 'tcd-w'); ?></h3> <?php // 現在のページを取得します。 $paged = get_query_var( 'paged' ); // get_postsの代わりにquery_postsを使用します。 // パラメーターに渡す文字列ですが、「posts_per_page」には1ページごとに表示する記事数、 // 「paged」にはページ番号を指定します。ここに先ほど「get_query_var( 'paged' )」で取得したページ番号を // 指定することで、ページ送りができるはずです。 $recent_post=query_posts($query_string.'&post_type=post&posts_per_page=20&paged='.$paged); if ($recent_post) { ?> ----------------------------------- に変えてみてください。 動作しなかったら、すみません。 参考サイト: ・http://webimemo.com/wordpress/1813http://ja.forums.wordpress.org/topic/127http://wpdocs.sourceforge.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0/query_posts
golgo

2015/03/09 03:51

詳しくありがとうございます!感謝です!! あと、現在72記事あって、1ページ20記事に指定しているのですが、 2ページ目(40記事)分までしか表示されません。 3,4ページ目まであって良いはずですが、これは どう設定すればよろしいでしょうか? 何度もすみません。お願いいたします。
golgo

2015/03/09 03:52

いい忘れました。 ちゃんと動作はしました! ですので、3ページ目以降の表示を解決するのみです。
golgo

2015/03/09 03:55

すみません、今WordPressの表示設定で表示する記事数を設定しなおしたら解決しました! このたびは本当にありがとうございました!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問