워드프레스 메인 페이지(전면 페이지)에서 특정 카테고리 글 제외

참고: 인기 테마인 BE 테마(33%)The 7(35%) 할인 행사를 진행하고 있습니다.
참고

이 글에서 루프에서 특정 카테고리의 글만 표시하거나 제외하는 방법을 살펴보았습니다. 이와는 반대로 메인 페이이지에서 특정 카테고리의 글만 제외시키려면 어떻게 하면 될깡? 다음과 같이 ‘pre_get_posts’ 액션을 사용하면 쉽게 워드프레스 블로그의 첫 페이지에서 특정 카테고리의 글만 제외시킬 수 있습니다.

function exclude_category( $query ) {
if ( $query->is_home() && $query->is_main_query() ) {
$query->set( 'cat', '-1,-2' );
}
}
add_action( 'pre_get_posts', 'exclude_category' );

참고로 특정 카테고리의 글만 표시하려면 테마 소스 파일에서 다음 라인을 추가해주면 됩니다.

<?php query_posts("showposts=5&cat=1"); ?>

pre_get_posts 액션은 query variable object가 생성된 후, 그리고 실제 query가 실행되기 전에 호출됩니다. 그러므로 이 액션을 사용하면 표시하거나 제외할 글을 쉽게 제어할 수 있습니다. 가령 다음과 같은 함수를 사용하여 특정 특정 카테고리의 표시 순서를 변경할 수 있습니다. (아래의 경우 카테고리의 글을 알파벳순으로 정렬합니다.)

function wpsf_orderby( $query ) {
if ( is_admin() || ! $query->is_main_query() )
return;
// do conditional checks here and return on false.?

if ( is_category('uncategorized') ) {
remove_action( 'pre_get_posts', __FUNCTION__ );
add_filter( 'posts_orderby', function() { return ' post_title ASC'; } );
}
}

add_action( 'pre_get_posts', 'wpsf_orderby' );
// Source: wordpress.org

참고:

 

 



기부를 통해 이 블로그를 후원하실 수 있습니다.
워드프레스 설치/제작/문제해결이 필요한 경우 서비스(유료)를 요청해주세요.