web-dev-qa-db-ja.com

特定のカテゴリの投稿をアルファベット順に表示する

カテゴリが「用語集」の場合はアルファベット順に投稿を表示する解決策を探しています。それ以外の場合は昇順で投稿を表示します。次のコードを試したとき、その用語はカテゴリ用語集に最適ですが、他の投稿の順序が間違っていました。

<?php global $query_string; 

if(is_category('Glossary'))
{
query_posts($query_string . "&orderby=title&order=ASC");
while ( have_posts() ) : the_post();
the_title();
endwhile; 




}
else{
query_posts($query_string . "&order = ASC"); ?>
             <?php while ( have_posts() ) : the_post(); ?>
                    <?php  the_title(); ?>

                <?php endwhile; ?>
<?php } ?>

誰かが問題を解決するのを手伝ってくれることを願っています。

1
user2754416

まず、 WPQuery を使用して問題を解決します。 query_postsとは対照的にそこに行くのがベスト

第二に、あなたがWPテーマの素晴らしい世界の中にいる限り、WP Queryがあなたの友人であることを認め、受け入れたら、次のようにしてあなたの特定の問題を解決します。ピクルス:

if(is_category('your_category') :
    $args = array(
        'post_type'         => 'post',  
        'posts_per_page'    => 'how_many_posts_you_want_-1_if_all',
        'cat'               => 'your_category_number',
        'orderby'           => 'title', 
        'order'             => 'ASC'
    );
else :
    $args = array(
        'post_type'         => 'post',  
        'posts_per_page'    => 'how_many_posts_you_want_-1_if_all',
        'order'             => 'ASC'
    );
endif;
$loop = new WP_Query( $args ); 
while($loop->have_posts()) : $loop->the_post(); 
    //do your magic here
endwhile;
wp_reset_query();

そしてそれはそれをするべきです。両方の条件式にいくつかの項目を配置したので、$args配列を少し最適化できますが、それは簡単なテストのためにそれを行うことができます。

5
Marco Berrocal