Computer >> 컴퓨터 >  >> 네트워킹 >> 인터넷

워드프레스에서 커스텀 RSS 피드 만드는 방법: 초보자도 따라 하는 완벽 가이드

워드프레스에서 커스텀 RSS 피드 만드는 방법: 초보자도 따라 하는 완벽 가이드

RSS 피드보다 더 좋은 것이 있다면 무엇일까요? 바로 커스텀(사용자 정의) RSS 피드입니다! 오랫동안 많은 사람들이 이 공유 기술의 쇠퇴를 예측해 왔지만, 여전히 강력한 생명력을 유지하고 있습니다.

통계에 따르면 세계 상위 10,000개 웹사이트 중 2,000개 이상이 꾸준히 RSS 피드를 발행하고 있습니다. 대표적인 RSS 피드 수집 서비스인 Feedly는 단 2년 만에 구독자 수가 900% 성장했고, 매출 역시 400% 이상 증가했습니다.

기본 워드프레스 RSS 피드 이상으로 방문자에게 맞춤형 사용자 경험을 제공하고 싶다면, 지금부터 웹사이트와 독자에게 딱 맞는 피드를 커스터마이징하는 방법을 살펴보겠습니다.

1단계: 웹사이트 백업하기

이 작업은 웹사이트의 백엔드(관리 영역)에서 진행되므로, 시작하기 전에 반드시 사이트를 백업하세요. 문제가 발생하더라도 웹사이트와 콘텐츠, 설정을 그대로 보존할 수 있습니다. 어떤 경우에도 이 단계를 소홀히 하지 마세요!

또한 이번 가이드에서는 워드프레스 테마에 새로운 템플릿 파일을 추가하게 됩니다. 기존 테마를 건드리지 않으려면 차일드 테마(child theme)를 생성하거나 전환한 후 작업하는 것이 좋습니다.

2단계: 워드프레스에서 커스텀 RSS 피드 등록하기

먼저 테마 폴더에 있는 functions.php 파일을 열고 아래 코드를 붙여넣습니다:

/* 이 코드는 웹사이트의 커스텀 RSS 피드를 초기화합니다 */
add_action( 'init', 'MyCustomRSS' );
function MyCustomRSS(){
   add_feed( 'mycustomfeedname', 'MyCustomFeedCallback' );
}
 
/* 이 코드는 RSS 피드의 템플릿을 찾아 불러옵니다 */
function MyCustomFeedCallback(){
    get_template_part( 'rss', 'mycustomfeedname' ); // 반드시 소문자로 작성해야 합니다.
}

위 코드에서 커스텀 RSS 피드의 이름을 입력하는 부분에 주목하세요. 이 이름이 곧 피드 URL이 되므로(예: https://yoursite.com/feed/mycustomfeedname), 쉽게 기억할 수 있는 간단한 이름으로 정하는 것이 좋습니다.

참고: 커스텀 RSS 피드의 이름은 영문 소문자만 사용할 수 있습니다.

3단계: 커스텀 RSS 피드 템플릿 만들기

커스텀 RSS 피드 템플릿은 피드가 콘텐츠를 제공하는 데 필요한 정보를 담는 파일입니다. 일반 웹페이지의 HTML/CSS처럼 피드의 구조와 형식을 결정한다고 생각하면 됩니다.

새로운 파일을 하나 생성하고, 파일명은 반드시 다음 규칙을 따라야 합니다: rss-mycustomfeedname.php

이 파일을 차일드 테마 폴더에 저장한 뒤 열고, 아래 코드를 붙여넣습니다:

<?php
/**
* Template Name: Custom RSS Template - YourCustomFeedName
*/
$postCount = 10; // 피드에 표시할 게시물 수
$postType = 'post'; // 피드에 표시할 포스트 타입
query_posts( array( 'post_type' => $postType, 'showposts' => $postCount ) ); 
$charset = get_option( 'blog_charset' );
header( 'Content-Type: ' . feed_content_type( 'rss-http' ) . '; charset=' . $charset, true );
?><?xml version="1.0" encoding="<?php echo $charset; ?>"?>
<rss version="2.0" 
xmlns:content="https://purl.org/rss/1.0/modules/content/" 
xmlns:wfw="https://wellformedweb.org/CommentAPI/" 
xmlns:dc="https://purl.org/dc/elements/1.1/" 
xmlns:atom="https://www.w3.org/2005/Atom" 
xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" 
xmlns:slash="https://purl.org/rss/1.0/modules/slash/" 
<?php do_action('rss2_ns'); ?>>
<channel>
<title><?php bloginfo_rss( 'name' ); ?> - Feed</title>
<atom:link href="<?php self_link(); ?>" rel="self" type="application/rss+xml" />
<link><?php bloginfo_rss('url'); ?></link>
<description><?php bloginfo_rss('description'); ?></description>
<lastBuildDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_lastpostmodified('GMT'), false); ?></lastBuildDate>
<language><?php echo get_option('rss_language'); ?></language>
<sy:updatePeriod><?php echo apply_filters( 'rss_update_period', 'hourly' ); ?></sy:updatePeriod>
<sy:updateFrequency><?php echo apply_filters( 'rss_update_frequency', '1' ); ?></sy:updateFrequency>
<?php do_action('rss2_head'); ?>
<?php while(have_posts()) : the_post(); ?>
<item>
<title><?php the_title_rss(); ?></title>
<link><?php the_permalink_rss(); ?></link>
<pubDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_post_time('Y-m-d H:i:s', true), false); ?></pubDate>
<dc:creator><?php the_author(); ?></dc:creator>
<guid isPermaLink="false"><?php the_guid(); ?></guid>
<description><![CDATA[<?php the_excerpt_rss(); ?>]]></description>
<content:encoded><![CDATA[<?php the_excerpt_rss() ?>]]></content:encoded>
<?php rss_enclosure(); ?>
<?php do_action('rss2_item'); ?>
</item>
<?php endwhile; ?>
</channel>
</rss>
 
<?php // 쿼리 초기화
wp_reset_query();

이 파일은 자유롭게 수정할 수 있습니다. $postCount 변수 값을 변경하면 피드에 표시되는 게시물 수를 조절할 수 있으며, 기본값은 10개입니다. 또한 $postType 변수를 수정하면 기본 '포스트' 외에 페이지나 커스텀 포스트 타입 등 다른 콘텐츠 유형을 표시할 수도 있습니다.

피드에는 게시물의 요약(excerpt)이 함께 출력됩니다. 별도의 요약을 작성하지 않은 경우에는 글 본문의 첫 120단어가 자동으로 표시됩니다.

4단계: 커스텀 RSS 피드에 추가 기능 넣기

기본 템플릿이 완성되었다면, 원하는 추가 기능을 손쉽게 덧붙일 수 있습니다.

피드에 포스트 썸네일(대표 이미지) 표시하기

피드에 게시물의 대표 이미지를 함께 보여주려면 아래 코드를 functions.php 파일 하단에 복사하여 붙여넣습니다.

게시물에 썸네일이 설정되어 있다면 해당 이미지를 찾아 피드 내용과 함께 출력하고, 이미지가 없으면 아무것도 표시하지 않습니다.

/* 이 코드는 커스텀 피드에 썸네일 기능을 추가합니다 */
add_action( 'rss2_item', 'custom_thumbnail_tag' );
function custom_thumbnail_tag() {
    global $post;
 
    if ( has_post_thumbnail( $post->ID ) ) {
        $thumbnail = get_attachment_link( get_post_thumbnail_id( $post->ID ) );
        echo("<image>{$thumbnail}</image>");
    }
}

피드 언어 설정하기

경우에 따라서는 커스텀 피드가 정상적으로 작동하도록 언어를 명시적으로 선언해야 할 수도 있습니다.

이럴 때는 functions.php 파일에 아래 코드를 추가하세요:

function myFeedLanguage(){
    update_option( 'rss_language', 'en' );
}
add_action( 'admin_init', 'myFeedLanguage' );

위 코드는 피드 언어를 영어(en)로 설정합니다. 다른 언어로 변경하려면 코드의 en 부분을 원하는 언어 코드로 수정하면 됩니다. 전체 언어 코드 목록은 ISO 639-1 언어 코드 표를 참고하세요.

5단계: 커스텀 피드 활성화하기

커스텀 RSS 피드를 실제로 사용하려면 워드프레스의 고유주소(rewrite rule)를 새로 고침해야 합니다. 방법은 아주 간단합니다. 설정 > 고유주소(Settings → Permalinks) 메뉴로 이동한 후 아무것도 변경하지 않고 '변경 사항 저장' 버튼만 클릭하면 됩니다.

그 후 브라우저에서 https://yoursite.com/feed/mycustomfeedname 주소로 접속해 새 피드가 정상적으로 출력되는지 확인하세요.

마무리

커스텀 RSS 피드는 인터넷 연결 환경이 좋지 않아 웹사이트 전체를 열람하기 어려운 독자들에게 콘텐츠를 제공하는 훌륭한 방법입니다. 또한 안드로이드와 iOS의 RSS 리더 앱을 통해 새로운 독자들이 여러분의 콘텐츠를 발견하는 통로가 되어 줍니다. 몇 번의 코드 추가만으로 완성할 수 있으니, 직접 시도해 보시길 적극 추천합니다.