サポート » 使い方全般 » WP_Queryを使ったカスタムタクソノミー一覧ページのページ送り

  • 解決済 tataraba99

    (@tataraba99)


    はじめまして、お世話になります。

    カスタム投稿のタクソノミーの一覧ページを作成しています。
    wp_pagenaviのプラグインを使ってページ送りを作りました。
    ページ送りは表示されるのですが、2ページ目以降が表示されません。
    症状としては ../zasshi/jump/page/2/ のアドレスで見た目は
    index.phpの表示になっています。

    同様の種類の質問等を参考に色々試してみたのですがうまくいきませんでした。
    どなたかご教授頂けますでしょうか。
    よろしくお願い致します。

    環境はローカルにMAMPを使ってワードプレスをインストールしております。
    Max OS X 10.9.5

    <?php
    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
    $args = array(
    	'post_type' => 'bookpost',
    	'posts_per_page' => 5,
    	'paged' => $paged,
    	'tax_query' => array(
    	    'relation' => 'AND',
    	    array(
    		'taxonomy' => 'zasshi',
    		'terms' => array('jump'),
    		'field' => 'slug',
    	    )
    	)
    );
    $wp_query = new WP_Query($args);
    ?>
    
    <?php if($wp_query->have_posts()): ?>
    <?php while($wp_query->have_posts()) : $wp_query->the_post(); ?>
    
    <?php endwhile; else: ?>
    
    <?php endif; ?>
    
    <div>
    <?php if(function_exists('wp_pagenavi')) wp_pagenavi(array('query' => $wp_query)); ?>
    </div>
    
    <?php wp_reset_query(); ?>

    追記

    関係があるかわからないのですが、
    同じカスタム投稿のアーカイブページでは
    ほぼ同様のコードで問題なくページ送りができています。
    2ページ目以降のURLが競合するとエラーが〜〜等の情報があったので
    もしかしたら関係があるかもと思いました。
    よろしくお願い致します。

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

    (@gatespace)

    カスタム投稿のタクソノミーの一覧ページ

    と書かれてますが、ソース見ると、「カスタムタクソノミーに所属する投稿一覧=タクソノミーのアーカイブ」ですよね?

    その前提で書きますが、

    http://wpdocs.sourceforge.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E9%9A%8E%E5%B1%A4#.E3.82.AB.E3.82.B9.E3.82.BF.E3.83.A0.E5.88.86.E9.A1.9E.E8.A1.A8.E7.A4.BA

    デフォルトでカスタム分類のアーカイブページが作られますから、わざわざ WP_Query 使わなくてもいいと思うのですが。

    トピック投稿者 tataraba99

    (@tataraba99)

    返信ありがとうございます。

    「デフォルトでカスタム分類のアーカイブページが作られますから、わざわざ WP_Query 使わなくてもいいと思うのですが。」

    この部分なのですが、そうなると
    taxonomy-zasshi-jump.php のものに

    <?php if(have_posts()): ?>
    <?php while($wp_query->have_posts()) : $wp_query->the_post(); ?>
    
    <?php endwhile; else: ?>
    
    そのカテゴリは見つかりません。 
    
    <?php endif; ?>
    
    <div>
    <?php if(function_exists('wp_pagenavi')) wp_pagenavi(array('query' => $wp_query)); ?>
    </div>
    
    <?php wp_reset_query(); ?>

    記述するといった感じでしょうか?
    この記述だとカテゴリが見つかりませんと出ます。

    トピック投稿者 tataraba99

    (@tataraba99)

    すみません、記述間違いました。

    <?php if(have_posts()): ?>
    <?php while(have_posts()) : the_post(); ?>
    
    <?php endwhile; else: ?>
    
     そのカテゴリは見つかりません。
    
    <?php endif; ?>
    
    <div>
    <?php if(function_exists('wp_pagenavi')) wp_pagenavi(); ?>
    </div>
    
    <?php wp_reset_query(); ?>

    現在、上記のようになっています。

    トピック投稿者 tataraba99

    (@tataraba99)

    自己解決しました。
    表示出来ない理由はregister_post_typeの設定の部分でした。

    具体的には

    register_post_type('bookpost',
    array(
    
    [省略]
    	'exclude_from_search' =?> false,
    [省略]  
    
    ),

    exclude_from_searchの部分がtrueになっていた為、出たエラーでした。
    falseにすると問題なく出来ました。

    基本的な部分での見落としで、お騒がせしました。

    gatespaceさん、その他目にとめて下さったみなさま
    ありがとうございました。

    モデレーター gatespace

    (@gatespace)

    <?php wp_reset_query(); ?>

    これいらないかと。

    分からなければ、Archive系(Archive.phpやcategory.php)から複製して、ファイル名変えるところから始めるといいかと

    トピック投稿者 tataraba99

    (@tataraba99)

    返信ありがとうございます。

    そうなんですね。
    ループの際にはセットで必要なものだという認識でした。

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • トピック「WP_Queryを使ったカスタムタクソノミー一覧ページのページ送り」には新たに返信することはできません。