サポート » 使い方全般 » カスタムタクソノミーアーカイブでの投稿一覧のランダム表示

  • お世話になります。

    カスタムタクソノミーアーカイブ(taxonomy-$taxonomy.php)での投稿一覧にて。
    下の記事の方法を使っていたのですが、
    [解決済み] 記事一覧の並び順をランダムにする方法

    投稿数が多くなった為、1ページあたりの表示件数を10に設定したところ、ページ内の一覧の順序はランダムになるもの、各ページに表示される投稿が同じになってしまいます。

    ページをまたいでも、重複しないよう全投稿をランダムに一覧表示させたいのですが、
    [解決済み] ランダムでorderbyした内容をページングする方法
    上記の記事に従い、ループに下記を追加したところ投稿一覧が表示されなくなってしまいました。

    <?php
    $paged = get_query_var('paged');
    $terms = array(
      'paged' => $paged
    );
    
    add_filter('posts_orderby_request', 'my_orderby_request');
    query_posts($terms);
    remove_filter('posts_orderby_request', 'my_orderby_request');
    ?>

    他の方法でも、結構です。
    どなたかご教授いただけますようお願いいたします。

1件の返信を表示中 - 1 - 1件目 (全1件中)
  • スレッド開始 everynight

    (@everynight)

    追記:

    上記のループを

    <?php
    $term_slug = get_query_var('term');
    $paged = get_query_var('paged');
    $toplist = array(
        'post_type' => 'custom_post',
        'taxonomy' => 'taxonomy_name',
    	'term' => $term_slug,
    	'paged' => $paged
        );
    	add_filter('posts_orderby_request', 'my_orderby_request');
    	query_posts($toplist);
    	remove_filter('posts_orderby_request', 'my_orderby_request');
    ?>
    <?php if(have_posts()) : ?>
    <?php while(have_posts()) : the_post(); ?>

    とし、

    function my_orderby_request($orderby){
    	if(session_id() == ""){
    		session_start();
    	}else{
    	mt_srand(session_id());
    	}
      return 'RAND(' . mt_rand() . ')';
    }

    上記をfunction.phpに下記を追加し、投稿一覧のランダム表示はできましたが、
    2ページ目に1ページで表示した投稿が出てしまうという状況です。

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

1件の返信を表示中 - 1 - 1件目 (全1件中)
  • トピック「カスタムタクソノミーアーカイブでの投稿一覧のランダム表示」には新たに返信することはできません。