워드프레스 #43
이번에는 워드프레스에서 관련 글 템플릿 만드는 방법을 알아볼게요. 이번에도 배열에 속성 넣는 부분이 중요합니다.
1. 기본 관련 글 템플릿
기본적으로 관련 글을 표시하는 템플릿을 작성합니다. 이 템플릿은 현재 글과 같은 카테고리에 속한 다른 글을 보여줍니다.
코드 설명
<?php
$args = array(
'posts_per_page' => 4, // 표시할 항목 수
'post__not_in' => array(get_the_ID()), // 현재 글 제외
'no_found_rows' => true, // 페이지네이션 필요 없음
);
// 현재 글의 카테고리 가져오기
$cats = wp_get_post_terms(get_the_ID(), 'category');
$cats_ids = array(); // 카테고리 ID 배열
foreach ($cats as $related_cat) {
$cats_ids[] = $related_cat->term_id;
} // 반복문으로 카테고리 ID 배열에 추가
if (!empty($cats_ids)) {
$args['category__in'] = $cats_ids; // 카테고리 ID 배열이 비어있지 않으면 args에 추가
}
$arr_posts = new WP_Query($args); // WP_Query로 관련 글 가져오기
?>
<!-- if문 : 해당 배열 안에 포스트 데이터가 있는지 확인 -->
<?php if ($arr_posts->have_posts()) : ?>
<!-- while문 : 해당 배열 안에 포스트를 반복해서 불러오기 -->
<?php while ($arr_posts->have_posts()) : $arr_posts->the_post(); ?>
<!-- Start : 이 안에 코드 형식으로 출력 -->
<div class="col-3">
<?php get_template_part('content'); ?>
</div>
<!-- End : 이 안에 코드 형식으로 출력 -->
<?php endwhile; ?>
<?php else : ?>
<!-- if문 : 해당 배열 안에 포스트 데이터가 없을 때 실행 -->
<?php get_template_part('content', 'empty'); ?>
<?php endif; ?>
2. 커스텀 포스트 타입(CPT)에 적용하기
특정 커스텀 포스트 타입(CPT)에만 관련 글을 표시하고 싶을 때 사용하는 템플릿입니다. 예를 들어 work
라는 CPT에 대해 관련 글을 표시합니다.
코드 설명
<?php
$args = array(
'posts_per_page' => 3, // 표시할 항목 수
'paged' => $paged, // 페이지네이션 사용 시
'post_type' => 'work', // CPT 이름
'post__not_in' => array(get_the_ID()), // 현재 글 제외
'no_found_rows' => true, // 페이지네이션 필요 없음
);
$arr_posts = new WP_Query($args); // WP_Query로 관련 글 가져오기
?>
<!-- if문 : 해당 배열 안에 포스트 데이터가 있는지 확인 -->
<?php if ($arr_posts->have_posts()) : ?>
<!-- while문 : 해당 배열 안에 포스트를 반복해서 불러오기 -->
<?php while ($arr_posts->have_posts()) : $arr_posts->the_post(); ?>
<!-- Start : 이 안에 코드 형식으로 출력 -->
<div class="col-4">
<?php get_template_part('content-work'); ?>
</div>
<!-- End : 이 안에 코드 형식으로 출력 -->
<?php endwhile; ?>
<?php else : ?>
<!-- if문 : 해당 배열 안에 포스트 데이터가 없을 때 실행 -->
<?php get_template_part('content', 'empty'); ?>
<?php endif; ?>
관련 글 템플릿 불러오기
이제 위에서 만든 템플릿 파일을 특정 페이지나 템플릿 파일에서 불러와 사용합니다.
<?php get_template_part('related-posts'); ?>
또는 CPT에 적용한 템플릿의 경우:
<?php get_template_part('related-work-posts'); ?>
이와 같이 관련 글 템플릿을 활용하면, 워드프레스 사이트에서 특정 조건에 맞는 관련 글을 손쉽게 불러와서 표시할 수 있습니다. 이를 통해 사용자에게 더 나은 탐색 경험을 제공할 수 있습니다.