サポート » プラグイン » WP-PageNavi の記述場所

  • yoshi2012

    (@yoshi2012)


    以下がindex.phpページなのですが

    「WP-PageNavi」を設置したい場所に以下のコードを挿入します。
    <?php if(function_exists(‘wp_pagenavi’)) { wp_pagenavi(); } ?>
    とのことなのですが
    どこに入れても反応というか変化がありません。

    どこに入れたらいいのでしょうか?
    (別テーマですが他のブログには問題なく入ったのに・・・)
    *************
    <?php get_header(); ?>

    <div id=”content”>
    <div id=”content-inner”>

    <div id=”alpha”>
    <div id=”alpha-inner”>

    <?php trackback_rdf(); ?>

    <?php if ( !function_exists(‘dynamic_sidebar’) || !dynamic_sidebar(2) ) : ?>

    <!– ウェルカム –>

    <div id=”welcome_message”>
    <?php query_posts(‘pagename=welcome’); ?>
    <?php if (have_posts()) : ?>
    <?php while (have_posts()) : the_post(); ?>
    <h3 class=”title”><?php the_title(); ?></h3>
    <div class=”content”>
    <?php global $more; $more = 0; ?>
    <?php the_content(__(‘詳細’)); ?>
    <div class=”clear”></div>
    </div>
    <?php endwhile; ?>
    <?php endif; ?>
    </div>
    <!– end_ウェルカム–>

    <!– トップ表示 –>
    <?php query_posts(‘tag=トップ表示’); ?>
    <?php if (have_posts()) : ?>
    <div id=”top-entry”>
    <?php while (have_posts()) : the_post(); ?>
    <div class=”top-entry-content”>
    <h3 class=”title”><?php the_title(); ?></h3>
    <div class=”content”>
    <?php the_content(__(‘> 詳細’)); ?>
    <div class=”clear”></div>
    </div>
    </div>

    <?php endwhile; ?>
    </div>
    <?php endif; ?>

    <!– end_トップ表示 –>

    <!– 新着記事一覧 –>
    <div id=”top-news”>
    <h3>新着情報</h3>

    <div class=”news”>

    <?php
    $myposts = get_posts(‘post_type=post’);
    foreach($myposts as $post) :
    ?>
    <div class=”day”><?php the_time(‘Y.m.d’);?></div>
    <div class=”title”>“><?php if ( get_the_title() ) the_title(); else the_ID(); ?> </div>
    <div class=”clear”></div>
    <?php endforeach; ?>

    </div>

    <!– end_新着記事一覧 –>

    <?php endif; ?>

    <div id=”gotop”>
    このページのトップへ
    </div>

    </div>
    </div>

    <?php get_sidebar();?>
    <?php get_footer(); ?>

15件の返信を表示中 - 1 - 15件目 (全15件中)
  • モデレーター Takuro Hishikawa

    (@hissy)

    そもそも WP-PageNavi プラグインをインストールして有効化しているのか、ですね。

    トピック投稿者 yoshi2012

    (@yoshi2012)

    >そもそも WP-PageNavi プラグインをインストールして有効化しているのか、ですね。
    双だったらいいのですが・・・残念ながら、そんなことはないのです

    モデレーター Takuro Hishikawa

    (@hissy)

    有効化しているということは分かりました。では、wp_pagenavi()をどこに入れたいのですか?また、何故query_posts()get_posts()を混在させているのでしょうか?ページ送りを正しく表示させたいのであれば、WP_Queryクラスを使用する方法に統一することをお薦めします。

    私の書いた記事ですが参考までに
    http://notnil-creative.com/blog/archives/1996#wp_query

    $the_query = new WP_Query( $args );
    if ( $the_query->have_posts() ) {
        while ( $the_query->have_posts() ) {
            $the_query->the_post();
            ?>
            <h1><?php the_title(); ?></h1>
            <?php
        }
    }
    wp_reset_postdata();
    
    wp_pagenavi(array('query'=>$the_query));
    トピック投稿者 yoshi2012

    (@yoshi2012)

    >何故query_posts()とget_posts()を混在させているのでしょうか?
    テンプレのテーマそのままの記述なので
    私も原因はわかっていません。
    サイト添付ありがとうございます。
    内容が難しすぎて・・・PHPを崩壊させてしまいそうです

    >wp_pagenavi()をどこに入れたいのですか?
    新着記事一覧の最下部に入れたいです。

    モデレーター Takuro Hishikawa

    (@hissy)

    新着記事はget_posts()で取得していますね。get_posts()を使うと、wp_pagenavi()を記述しても、get_posts()で表示している一覧についてのページ送りになりません。ただしくページ送りを表示するには、私が上述したコードのように、wp_pagenavi()の引数queryWP_Queryのインスタンスを渡す必要があります。

    トピック投稿者 yoshi2012

    (@yoshi2012)

    上記で頂いたコードを
    <!– end_新着記事一覧 –>の前に貼りましたが
    サイトが崩壊してしまいましたので戻しました。

    >新着記事一覧の最下部に入れたいです。
    これは理想で、wp_pagenaviにこだわっているわけでもありません。
    wordpressの欠点であるページ送りができないという欠点を回避したいだけです。

    >get_posts()を使うと、wp_pagenavi()を記述しても、get_posts()で表示している一覧についてのページ送りになりません。
    競合するみたいなものと理解しています。

    >wp_pagenavi()の引数queryにWP_Queryのインスタンスを渡す必要があります。
    ここが不明ですが、解説をしてもらっても理解するには私の予備知識がなさすぎます。
    (VBAくらいしか言語?をしらないので)

    もしかして、
    <h3>新着情報</h3>

    <!– end_新着記事一覧 –>
    この間の記述って不要ですか?
    ウィジェットの新着記事一覧」を使っているのなら
    この記述は不要になるから、競合の問題は解決するように思えるのですが・・・

    モデレーター Takuro Hishikawa

    (@hissy)

    競合の問題ではありません。get_posts()wp_pagenavi()を連携させることはできません。その理由は、wp_pagenavi()は内部的にメインクエリーを参照しており、サブクエリーを参照するには、引数で明示的に渡してあげる必要があるのです。

    私が書いたコードは、WP_Queryのパラメーターを設定していませんので、そのままでは動きません。詳細はCodexの関数リファレンス/WP_Queryをお読みください。

    トピック投稿者 yoshi2012

    (@yoshi2012)

    ご回答有難うございます。

    >get_posts()とwp_pagenavi()を連携させることはできません。
    連携させたいという意図はありません。

    話から想像するに「wp_pagenavi」を使うということは
    連携させるという意味になる可能性があると感じております。

    そうなると新着表示を捨てて、「wp_pagenavi」を導入したいです。

    モデレーター Takuro Hishikawa

    (@hissy)

    新着表示を捨てて、wp_pagenaviを導入したい、とは、どういうことでしょうか…。

    トピック投稿者 yoshi2012

    (@yoshi2012)

    新着表示=get_posts()ではないのでしょうか?

    競合するなら使わなければいいかなと思ったのですが・・・

    これはテンプレートレベルの話ですか?
    (つまり、私が「wp_pagenavi」を使いたいならテンプレートを変えるのが一番はやいという意味でしょうか? )

    モデレーター Takuro Hishikawa

    (@hissy)

    テンプレートレベルの話ですね。私が言いたいのは、新着記事の表示にget_postsを使うのをやめて、WP_Queryを使えば解決しますよ、というアドヴァイスです。

    トピック投稿者 yoshi2012

    (@yoshi2012)

    あああ・・・そういうことですか(泣)
    このテンプレートを捨てないといけないってことなので
    そこまでするかどうか悩みます・・・。
    (私はコピペでしかPHPをいじれない)

    モデレーター Takuro Hishikawa

    (@hissy)

    ちなみに、ページ送りを表示したとして、そのリンクをクリックすると、ウェルカムとトップ表示にも影響を与えますので、そちらも修正が必要になるでしょう。これは、複数のページ送りを同一画面に同居できないというWordPressの設計が原因です。テンプレートごと捨てる必要はありませんが、全体的に手を入れる必要があります。

    トピック投稿者 yoshi2012

    (@yoshi2012)

    全体的に手を入れたい気持ちはあるのですが
    たぶん、私の知識では難しい(カット&ペーストはできますが)と
    想像しているのですが・・・
    (この掲示板しか頼れないので、そこまで可能かどうか・・・)

    >wp_pagenavi()をどこに入れたいのですか?
    新着記事一覧の最下部に入れたいです。

    そうなると新着表示を捨てて、「wp_pagenavi」を導入したいです。

    何のページナビゲーションを表示するのが目的なんでしょう?
    デフォルトではトップページにブログ記事一覧が表示されますが、その為のページナビゲーションであればWP-PageNaviでも可能だと思います。

    新着表示とブログ記事一覧など、1ページにページナビゲーションを複数設置したいのであれば、自分でカスタマイズ出来ない以上諦めるしかないと思います。

15件の返信を表示中 - 1 - 15件目 (全15件中)
  • トピック「WP-PageNavi の記述場所」には新たに返信することはできません。