Archive.php에서 이름 및 asc 순서로 결과 정렬


15

현재 다음 코드를 사용하여 Archive.php의 게시물을 나열하지만 결과를 오름차순으로 이름순으로 정렬하고 싶습니다. 코덱스를 확인했지만 대답이 명확하지 않습니다. 어떻게 작동합니까?

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

미리 감사드립니다.


archive.php에서 사용자 정의 쿼리를 사용하는 경우 표시 할 수 있습니까? pastie.org에 완전한 archive.php를 게시 하고 링크로 답변을 업데이트 할 수 있습니까?
Hameedullah Khan

답변:


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

감사. 분류 아카이브 페이지에 적합합니다.
Sema Hernández

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에 도움이되는 이유 를 설명해 주 시겠습니까? 항상 코드 위에 설명을 추가하십시오. 감사.
카이저

문제는 Archive.php에서 이름 및 asc 순서로 결과 정렬이었습니다. 아마도 응답자에 따르면이 코드는 Archive.php에서 이름 및 asc 순서로 결과를 정렬합니까?
Jon

0

Stephen의 답변에 더하여 제목별로 쿼리하고 순서를 지정하려면 템플릿 파일에서 사용할 수 있습니다.

$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.