Archive.phpで名前とasc順序で結果を並べ替える


15

現在、Archive.phpに投稿をリストするために次のコードを使用していますが、結果を名前の昇順で並べ替えたいです。コーデックスを確認しましたが、答えがわかりません。どうすればこれを機能させることができますか?

<?php $post = $posts[0]; // ?>

前もって感謝します。


archive.phpでカスタムクエリを使用している場合、それを表示できますか?完全なarchive.phpをpastie.orgに投稿して、リンクで回答を更新できますか?
ハメダラカーン2012

回答:


36

これを行う最も簡単な方法は、フック(pre_get_postsフック)を使用して順序を変更することです。ただし、クエリが順序を変更したいクエリであることを確認する必要があります。(is_archive()または is_post_type_archive()十分なはずです。)

たとえば、テーマのfunctions.phpに以下を追加します...

add_action( 'pre_get_posts', 'my_change_sort_order'); 
    function my_change_sort_order($query){
        if(is_archive()):
         //If you wanted it for the archive of a custom post type use: is_post_type_archive( $post_type )
           //Set the order ASC or DESC
           $query->set( 'order', 'ASC' );
           //Set the orderby
           $query->set( 'orderby', 'title' );
        endif;    
    };

こんにちは、デフォルトの順序がどのように機能するかを示すことができますか?可能であればいくつかのリンク.thanks
Latheesh VM Villa

@LatheeshVMVilla WPはブログとして開発されているため、賢明な/デフォルトの順序はpost_date DESC(=降順)であり、それが最新のポストファーストです。時間に関連性の低い何か(レコードコレクション、レシピ、用語集などのほとんどのタイプのリスト)にWPを使用している場合は、post_title ASC(=昇順なので、タイトルのアルファベット順)を頻繁に注文する必要があります。文字の前に数字が付いています)。
user3445853

ありがとう。私の分類アーカイブページでは問題なく動作します。
セマエルナンデス

1
<?php
// we add this, to show all posts in our
// Glossary sorted alphabetically
if ( is_category('Glossary') )  {
    $args = array( 
        'posts_per_page' => -1, 
        'orderby'        => 'title', 
        'order'          => 'ASC' 
    );
    $glossaryposts = get_posts( $args );
}
foreach( $glossaryposts as $post ) : setup_postdata( $post );
    ?>
    <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endforeach; ?>

1
これがOPに役立つ理由を教えてください。常に、コードの上に説明を追加してください。ありがとう。
カイザー2017年

問題は、Archive.phpで結果を名前と昇順でソートすることでした。おそらく回答者によると、このコードは結果をArchive.phpの名前とasc順序でソートしますか?
Jon

0

スティーブンの答えに加えて、単にクエリしてタイトルで並べ替える場合は、これをテンプレートファイルで使用できます。

$args = ( array(
'order' => 'ASC',
'orderby' => 'title',
 ) );

query_posts($args);

5
WordPressコードリファレンスから直接-「この関数はメインクエリを完全に上書きし、プラグインやテーマでの使用を目的としていません。メインクエリを変更するための過度に単純化されたアプローチは問題が発生する可能性があり、可能な限り回避する必要があります。場合によっては、WP_Query内の「pre_get_posts」アクションを介するなど、メインクエリを変更するためのより優れた、よりパフォーマンスの高いオプションがあります。結論として、@ Stephen Harrisはこれを実現する正しい方法を持っています。 developer.wordpress.org/reference/functions/query_posts
Michael
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.