サポート » 使い方全般 » カテゴリーとタクソノミーを引数にしたquery_postsのページング

  • 解決済 myojo1

    (@myojo1)


    こんにちは。

    query_postを使用してカテゴリーとタクソノミーをアンド検索した結果を表示する、
    検索画面を作っています。

    たとえば
     カテゴリー:Japanese
     タクソノミーArea:City
    で検索した場合、
    URLを http://******/category/japanese/?Area=city
    として、カテゴリーアーカイブのURLにAreaのタクソノミーを付加し

    $arg_page = get_query_var('paged' );
    $arg_cat  = get_query_var( 'cat' );
    $arg_area = $_GET['Area'];
    
    query_posts( array(
    	'paged'=>$arg_page,
    	'area'=>$arg_area,
    	'cat'=>$arg_cat,
    	'posts_per_page' => 10,
    	'order' => 'DESC' ,
    	'orderby' => 'meta_value_num',
    	 'meta_key' => 'promotion_level' ) );

    というquery_postを実行しています。
    全ての結果を1ページに表示する場合は、想定した結果が得られているのですが、
    複数ページにまたがる場合、ページングが上手くいきません。

    どうやらカテゴリーの数でページングされてしまっているようで、
    例えば
     Japaneseカテゴリーが11件
     そのうちArea=Cityのものが2件
     ( → query_postsnの結果は2件)の場合、
    カテゴリーの件数11件に引きづられて2ページめへのリンクが表示されてしまいます。

    試してみたページング表示は以下のとおりです。

    <span id="pageprev"><?php previous_posts_link('&laquo; 前ページ'); ?></span>
          <span id="pagenext"><?php next_posts_link('次ページ &raquo;'); ?></span>

    <?php posts_nav_link(' | ','前の記事','次の記事'); ?>

    どちらも同じ結果でした。

    どなたか、ページングを正しくさせる方法がありましたら教えてください。

    ※そもそもこのURLだと無理なのであれば、
    カテゴリーとタクソノミーでの絞り込みの際はどのようなURLにすれば良いかの
    アドバイスなどありましたら、教えていただけると助かります。

    よろしくお願いします。

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

    (@jim912)

    myojo1さん、こんにちは。

    ページングの関数が、query_postsの前にありませんか?

    1. query_posts
    2. ページング
    3. 結果の表示
    4. ページング
    5. wp_reset_query

    のようにすれば、正しい表示になると思われます。

    また、ソートの順がが異なりますが、

    http://******/category/japanese/?taxonomy=area&term=city

    であれば、query_postsの必要もなくなるかもしれません。(ページングのURLが正しく働くか分かりませんが。)

    トピック投稿者 myojo1

    (@myojo1)

    jim912さん、ありがとうございます!

    仰るとおりページング関数の位置が不適切でした。

    1.query_posts
    5.wp_reset_query
    2.ページング

    となっていてページング関数の前にwp_reset_queryをしてしまっていました。
    これを直したら無事にページングが動きました!

    また、教えていただいたこちらのURL試してみましたが、
    http://******/category/japanese/?taxonomy=area&term=city
    こちらでも無事にページング動きました。

    私はやはりソート条件が必要なのでquery_postsをしましたが、
    ソートの必要が無い人はquery_postsをする必要が無くなると思います。

    大変ありがとうございました。助かりました。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「カテゴリーとタクソノミーを引数にしたquery_postsのページング」には新たに返信することはできません。