サポート » プラグイン » WP SiteManagerのページャーで1しか出ない

  • 解決済 mitsu666

    (@mitsu666)


    お世話になっております。

    http://www.wp-sitemanager.com/usage/pagenavi/
    こちらのページを見てWP SiteManagerを導入し
    archive.phpへ

    <?php if ( class_exists( 'WP_SiteManager_page_navi' ) ) { WP_SiteManager_page_navi::page_navi(); } ?>
    のタグを入れたところ、
    「1」という数字しか出て来ず、
    ページ送りが出来ない状態です。
    なぜでしょうか??
    お分かりになる方、どうかご教授ください。
    何卒よろしくお願いいたします。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • 念のため確認ですがアーカイブは2ページ以上あるのですよね。(例えば1ページに5つ表示する設定で、投稿が5つ以下ならページ番号は1しか出ません。)

    WP_SiteManager_page_naviのタグを入れた先が適切ではないのかもしれません。お使いのテーマと、archive.phpのどの部分へタグを入れたか、教えていただけますか。

    トピック投稿者 mitsu666

    (@mitsu666)

    gblsmさま

    こんばんは。
    いつもありがとうございます!

    >念のため確認ですがアーカイブは2ページ以上あるのですよね。(例えば1ページに5つ表示す>る設定で、投稿が5つ以下ならページ番号は1しか出ません。)
    こちらは、記事数に問題ございません。

    >WP_SiteManager_page_naviのタグを入れた先が適切ではないのかもしれません。お使いのテ>ーマと、archive.phpのどの部分へタグを入れたか、教えていただけますか。
    おそれいります。
    テーマは、オリジナルでございます。

    <?php get_header(); ?>
    
    <div id="primary" class="content-area mgn_t2rem">
    	<main id="main" class="site-main" role="main">
    
    		<div id="business" class="block_bmgn">
    			<div class="row">
    			<div class="wrap">
    
    				<?php
    				$args = array(
    					'posts_per_page' => 4, // 表示するページ数
    					'order'   => 'DESC',
    				); ?>
    				<?php $mypost = new WP_Query( $args ); ?><!-- クエリの指定 -->
    				<?php while ( $mypost->have_posts() ) : $mypost->the_post(); ?>
    
    				<div class="col-md-6 matchHeight">
    					<figure class="circle_block circle_img">
    						<?php
    						if (has_post_thumbnail()) {
    						the_post_thumbnail('thumbnail');
    						}else {
    						echo '<img src="' . get_template_directory_uri() . '/images/crcle5_noimage.png' . '" alt="no image" />';
    						}
    						?>
    						<p class="circle_date flt_box"><?php the_time('Y.m.d'); ?></p>
    						<p class="center_ico"><span class="<?php $cat = get_the_category(); $cat = $cat[0]; {echo "$cat->category_nicename";} ?>"><?php echo $cat->cat_name; ?></span></p>
    						</p>
    						<h3 class="circle_ttl"><?php the_title(); ?></h3>
    						<p class="circle_andmore"><span class="circle_andmore_inner">続きを読む</span></p>
    						<a href="<?php the_permalink(); ?>">
    							<figcaption class="circle_large">
    								<p>read more</p>
    								<p><i class="material-icons">local_library</i></p>
    							</figcaption>
    						</a>
    					</figure>
    				</div>
    
    				<?php endwhile; ?>
    				<?php if ( class_exists( 'WP_SiteManager_page_navi' ) ) { WP_SiteManager_page_navi::page_navi(); } ?>
    				<?php wp_reset_postdata(); ?><!-- 忘れずにリセットする必要がある -->
    
    			</div>
    			</div>
    		</div>

    該当ソースはこんな感じでございます。
    ご教授いただければ幸いです。
    何卒よろしくお願いいたします。

    原因は WP_SiteManager_page_navi が、テーマ側で独自に用意したクエリ(mitsu666 さんが new WP_Query で用意したクエリオブジェクト)に対応しない仕様だからです。

    ふつうのループなら大丈夫です。ご存知と思いますがふつうのループは WordPress コア側でクエリオブジェクト(global $wp_query)を用意してくれています。この場合に posts_per_page や order を独自に指定するには pre_get_posts フィルターを利用できますので調べてみてください。
    参考: [Wordpress]pre_get_postsを使いこなす!pre_get_posts使い方まとめ | EMiAC-Works

    どうしてもテーマ側で独自にクエリを用意する場合は、new WP_Query の代わりに query_posts() を使えば WP_SiteManager_page_navi でページナビを出せます。

    トピック投稿者 mitsu666

    (@mitsu666)

    gblsmさま

    いつもお世話になっております。
    返信が遅くなり申し訳ありません。

    原因は WP_SiteManager_page_navi が、テーマ側で独自に用意したクエリ(mitsu666 さんが new WP_Query で用意したクエリオブジェクト)に対応しない仕様だからです。

    なんと!!
    サブループですとだめなのですね。
    基礎的なところがグラグラしておりまして。。
    すみません、勉強になります!

    ふつうのループなら大丈夫です。ご存知と思いますがふつうのループは WordPress コア側でクエリオブジェクト(global $wp_query)を用意してくれています。この場合にposts_per_page や order を独自に指定するには pre_get_posts フィルターを利用できますので調べてみてください。

    おお。
    ちょうど最近、おなじような記事を拝見しておりました。
    いつも、メインループでこまごまと条件をつけるやり方が
    モヤモヤしてわからず、横着をしてwp-Queryをつかってループさせていたりしておりました。

    そして、ご教授いただきましたページを参考に、
    任意のページのメインループを
    functions.php
    へ記述し、あらためて試したところ、
    ページャーが出ました!!
    ありがとうございます!
    とても勉強になり、たすかりました。
    いつも親切に教えていただいてほんとうにありがたいです。
    がんばります!

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「WP SiteManagerのページャーで1しか出ない」には新たに返信することはできません。