サポート » プラグイン » WP-PageNavi は、ver.3.9に対応していますか?

  • 解決済 mogetan

    (@mogetan)


    お世話になります。
    WP-PageNavi をindex.phpに導入したいのですが、表示はされるのですが、動きません。
    もしかして、3.9は非対応なのでしょうか?

    <?php
    /*
    Template Name: index
    */
    
    get_header(); ?>
    
    <div class ="top3">
    <h3 class ="top2"><?php the_post_thumbnail(); ?></h3>
    </div><!--top-->
    
    <div id ="main">
    <div id ="content">
    
    <?php $paged = get_query_var('paged'); ?>
    <?php query_posts("posts_per_page=10&paged=$paged"); ?>
    
    <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
    <div class ="voice mt10 mb50">
    <?php the_content(); ?>
    </div><!--voice-->
    
    	<?php endwhile; endif; ?>
    
    <?php wp_pagenavi(); ?>
    </div><!--content-->
    
    	<?php get_sidebar(); ?>
    </div><!--main-->
    	<?php get_footer(); ?>

    合わせてこのページのみ<?php the_post_thumbnail(); ?>も動かず
    ほかのページのテンプレートではアイキャッチ画像が挿入できます。

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

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • モデレーター のむらけい (Kei Nomura)

    (@mypacecreator)

    もしかして、3.9は非対応なのでしょうか?

    いえ、対応しています。原因はWordPressのバージョンではないです。

    まずですが、ループの書き方が間違っています。

    <?php $paged = get_query_var('paged'); ?>
    <?php query_posts("posts_per_page=10&paged=$paged"); ?>

    と、

    <?php if (have_posts()) : while (have_posts()) : the_post(); ?>

    が、同時に登場することは通常ありません。なので、残念ながら書き方の問題です。

    ちょっとハードルが高いかもしれませんが、そのものずばりの記事があります。
    「WordPressでページ送りが動かないのはどう考えてもquery_postsが悪い!pre_get_posts、WordPressループまとめ】」

    上記記事はぜひ読んでいただきたいのですが、もしmogetanさんのWordPress歴がまだ浅くてよくわからないようであれば、まずは何も考えずに

    <?php $paged = get_query_var('paged'); ?>
    <?php query_posts("posts_per_page=10&paged=$paged"); ?>

    の2行を消し去ってください。それでページ送りがちゃんと出るか教えてください。

    合わせてこのページのみ<?php the_post_thumbnail(); ?>も動かず

    これも、ループについての問題ですね。
    <?php the_post_thumbnail(); ?>は、ループの中でしか動かない仕様になっています。

    つまり、
    <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
    から
    <?php endwhile; endif; ?>
    までの間に書かないとダメなんです。

    mogetanさんの記述だと、<?php the_post_thumbnail(); ?>
    <?php if (have_posts()) : while (have_posts()) : the_post(); ?>よりも上にありますよね。

    WordPressのループはすべての基本です。私も理解するまでに結構時間かかりましたが、腑に落ちればそこから先はぐんぐんスキルアップできるので、ぜひとも頑張ってみてください!

    参考サイト
    http://designup.jp/wordpress-loop-110/
    http://wpdocs.sourceforge.jp/%E3%83%AB%E3%83%BC%E3%83%97

    ありがとうございます!!
    動きました!!
    参考サイトまで、教えていただきありがとうございます!
    完全なる初心者なので勉強させていただきます!

    モデレーター のむらけい (Kei Nomura)

    (@mypacecreator)

    無事動いてよかったですー^^
    補足としては、消した部分に書いてあったposts_per_page=10は本来、ダッシュボードの表示設定で「1ページに表示する最大投稿数」を10と設定すれば済むので、記述としては必要のないものだったんです。
    ループは奥が深いのでなかなか道は長いかもしれませんが、だんだん理解が深まっていくのは楽しいですよ!ちなみに、ループが使えるようになるには基本のコードを覚えればいいので、慣れちゃえば全然難しくはないんですが、人に説明できるようになるまでには3年かかりました(笑)まだまだ道の途中です^_^;

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「WP-PageNavi は、ver.3.9に対応していますか?」には新たに返信することはできません。