サポート » 使い方全般 » カテゴリーページ内の記事並び替え(ソート)が機能しない

  • カテゴリーページにて
    記事新古順
    コメントの多少順
    Post Ratingsのレーティング多少順(ratings_score)
    の記事の並び替えをしたいのですが機能しません。
    各カテゴリーにて20記事づつ表示されるのですが並び替えが動作しません。
    Post Ratingsは1つの記事しか表示されません(全ての記事にレーティングをしています)。

    ソートの記述について参考にしています。
    http://ja.forums.wordpress.org/topic/10527

    category.phpで分岐しcategory_common.phpで一部を除き、ほとんどのカテゴリーを表示しています。
    category_common.phpに下記記述

    <ul>
    <?php
    $tmp_url = get_category_link($cat[0]);
    $url = sprintf( $tmp_url, $_SERVER["HTTP_HOST"], $_SERVER["REDIRECT_URL"] );
    printf( '<li><a href="%s?orderby=comment_count&order=DESC">コメントの多い順</a></li>', $url );
    printf( '<li><a href="%s?orderby=comment_count&order=ASC">コメントの少ない順</a></li>', $url );
    printf( '<li><a href="%s?orderby=post_date&order=DESC">日付の新しい順</a></li>', $url );
    printf( '<li><a href="%s?orderby=post_date&order=ASC">日付の古い順</a></li>', $url );
    printf( '<li><a href="%s?&meta_key=ratings_score&orderby=meta_value_num&order=DESC">カスタムフィールド値の大きい順</a></li>', $url );
    printf( '<li><a href="%s?&meta_key=ratings_score&orderby=meta_value_num&order=ASC">カスタムフィールド値の小さい順</a></li>', $url );
    
    ?>
    </ul>
    <?php
    $cat_name = esc_html(get_query_var('category_name'));
    if($_GET['meta_key'] == 'ratings_score') {
    query_posts($query_string . '&category_name=' . $cat_name . '&meta_key=ratings_score&orderby=meta_value_num&order=' . esc_html($_GET['order']));
    }
    ?>
    <?php if ( have_posts() ) : ?>
    	<?php while ( have_posts() ) : the_post(); ?>
    コンテンツループ
    	<?php endwhile; ?>
    <?php endif; ?>
    <?php wp_reset_query(); ?>

    以前フォーラムでカテゴリーページにて教えていただいた内容
    http://ja.forums.wordpress.org/topic/10795?replies=5

    functions.phpに下記記述

    // 共通カテゴリーコード
    function category_display_custom_articles( $wp_query ) {
        if ( $wp_query->is_main_query() && $wp_query->is_category() ) {
            $wp_query->set( 'posts_per_page', 20 );
        }
    }
    add_action( 'pre_get_posts', 'category_display_custom_articles' );

    長文になりましたが、お分かりになられる方助言をいただけないでしょうか
    よろしくお願いいたします。

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

    (@jim912)

    bluegillさん

    functions.phpに記述した内容は、デフォルトのクエリー条件を改変するもので(is_main_queryで判別しているため)query_postsでリクエストされたクエリーには適用されません。

    query_postsでposts_per_pageが指定されない場合には、[設定] > [表示設定]の「1ページに表示する最大投稿数」が適用されます。

    query_postsで表示件数を「1ページに表示する最大投稿数」と変更したい場合は、posts_per_pageパラメーターを指定してください。
    また、pagedパラメーターを指定しないとページ送りが正しく動作しません。

1件の返信を表示中 - 1 - 1件目 (全1件中)
  • トピック「カテゴリーページ内の記事並び替え(ソート)が機能しない」には新たに返信することはできません。