워드프레스에서 특정 카테고리 페이지를 홈페이지로 설정하기

Last Updated: 2015년 11월 02일 | | 9개 댓글

워드프레스에서 전면 페이지로 "최근 글" 또는 "정적인 페이지" 중 하나를 선택하여 설정할 수 있습니다.

Reading Option in WordPress - 워드프레스 읽기 옵션

그럼 특정 카테고리 내의 글만 워드프레스의 전면 페이지(홈페이지)에 표시되도록 하려면 어떻게 하면 될까요? 몇 가지 방법을 생각해볼 수 있습니다. 다음 방법 중 사용 중인 테마와 궁합이 가장 잘 맞는 방법을 사용하시면 됩니다.

index 페이지에 카테고리 쿼리 코드 추가하기

제일 간단한 방식은 index.php 파일에 다음과 같은 코드를 추가하는 것입니다.

<?php query_posts('cat=3'); ?>

여러 개의 카테고리를 추가하려면 query_posts('cat=8,4,3'); 형식을 사용합니다. 위에서 '3'은 카테고리 ID입니다. 해당 카테고리 ID로 대체하시기 바랍니다. 카테고리 ID를 확인하는 방법은 이 글을 참고하십시오.

그럼 위의 코드를 어디에 추가하면 될까요? 루프문이 시작되기 직전에 추가하면 됩니다.

wordpress index loop - 워드프레스 루프문

위의 그림과 같이 while (have_posts()) 바로 위에 추가할 수 있습니다. 잘 작동하지 않으면 캐시(브라우저 캐시/플러그인 캐시)를 삭제하고 테스트해보십시오. 그래도 잘 안 되면 아래의 방법을 시도해보시기 바랍니다.

add_action 함수 코드 추가하기

두 번째로 생각해볼 수 있는 방법으로 add_action 함수를 사용하는 것입니다. 다음 함수를 함수 파일에 추가하도록 합니다.

function my_home_category( $query )  {
if ( $query->is_home() && $query->is_main_query() ) {
$query->set( 'cat', '11');
}
}
add_action( 'pre_get_posts', 'my_home_category' );
// Source: https://premium.wpmudev.org/blog/one-category-wordpress-homepage/

여러 개의 카테고리를 지정할 경우에는 다음과 같은 형식을 사용합니다.

$query->set( 'cat', '11, 14' );

페이지 템플릿 사용하기

마지막으로 페이지 템플릿 사용을 고려할 수 있습니다. category.php 또는 archive.php 파일의 내용을 복사하여 새로운 페이지를 하나 만들고 복사한 내용을 붙여넣기 합니다(예: homepage.php). 그런 다음 헤더 부분을 다음과 비슷하게 수정합니다.

<?php
/*
* Template Name: 전면 페이지 템플릿
*/
get_header(); ?>

템플릿 이름은 적절히 수정합니다. 이제 루프문 앞에 다음과 비슷한 코드를 추가합니다.

<?php query_posts('category_name=카테고리이름&showposts=5');

query_posts를 사용하여 문제가 발생할 경우 WP_query()를 사용해봅니다.

$query = new WP_Query('category_name=Category&posts_per_page=4');
if($query->have_posts()) : while($query->have_posts()) : $query->the_post();
...

WP_query(), query_posts(), pre_get_posts이에 대한 내용은 이 글을 참고하시기 바랍니다.

이제 새로운 페이지를 하나 만들고(예: "홈페이지" 혹은 원하는 이름으로) 템플릿을 위에서 만든 템플릿(예: 전면 페이지 템플릿)으로 지정합니다.

Front Page Template - 워드프레스 페이지 템플릿 지정페이지에 내용은 입력하지 않고 저장합니다. "설정 > 읽기"에서 "정적인 페이지"로 선택하고 방금 저장했던 페이지(예: 홈페이지)를  지정합니다. 이제 홈페이지를 방문하면 지정한 카테고리의 글들이 표시될 것입니다.  (참고로 이 방법은 워드프레스 테마에 따라 달라질 수 있습니다.)

추가:

082net님이 제안한 방법으로 리디렉션(redirection)시키는 방법도 생각해볼 수 있습니다.  자세한 내용은 이 글을 참고해보시기 바랍니다. 링크의 내용 대신 간단히 wp_redirect() 함수 코드를 index.php 파일 맨 위에 추가하여 특정 카테고리로 이동시키는 방법도 가능할 것 같습니다.


9 개 댓글

Leave a Comment

  1. index.php 는 테마 폴더안에 있는 파일이겠죠..? 근데 여기에 나온 while (have_posts())이 없어서 찾아봤는데 template_full.php 에 있긴한데 수정해봐도 안되네요 하..어렵습니다..

    응답
  2. 우연히 이 글을 보고 시험 삼아 적용해보았는데요.
    잘되네요.
    Visual Composer를 안쓰면서도 조금 폼나는 전면 디자인을 고민하는데
    카테고리를 가져오는게 이 방법이 그나마 차선책이 되었네요.

    잘 보고갑니다.

    응답
할인 소식
Divi 레이아웃 AI 출시 기념 할인!
AI로 이미지, 텍스트, 코딩, 전체 페이지 레이아웃 생성 가능
베스트셀링 워드프레스 테마 Divi
0
0
시간
0
0
Limited Time Offer
You This Coupon Code in Checkout
Click the code to Copy