WordPress Feed URL 리다이렉팅 / 바꾸기

Wordpress meta
워드프레스 사이드바엔 기본으로 META라는 항목이 있고 로그인, 관리, 피드feed 주소 등이 나온다.
헌데 FeedBurner 서비스를 이용하는 경우에는 워드프레스(이하 WP) 자체에서 제공하는 피드 주소가 아닌 피드버너의 주소를 연결해 주고 싶었다.
META 항목에 뿌려지는 것들은 WP의 theme에서 뿌려주는 것이 아니고 WP 자체에서 뿌려주는 거라서 WP의 기본 파일을 건드리기는 좀 그래서 어떻게 수정을 해야할지 알아보았다.

1. feed에 접근시 단순히 리다이렉팅 시키기

1-1. 플러긴 사용

FD Feedburner Plugin 등의 플러긴으로 기존 링크는 살려두되, 피드 링크 클릭을 하면 피드버너 쪽으로 리다이렉트 시킬 수는 있다.
이 경우엔 브라우저 등에서 자동으로 인식하는 feed 주소는 원래 것에서 변함이 없고, META 항목에 있는 Entries RSS, Comments RSS 등 ‘링크를 직접 클릭’하는 때에만 피드버너 쪽으로 리다이렉팅을 시켜준다.

1-2. .htaccess 파일 수정

수정하는 방법을 찾아냈지만 내 경우엔 잘 작동하지 않았다. 이 부분은 내가 전문가가 아니라서 기록만 해둔다.
게다가 어떤 사람은 root에 있는 .htaccess 파일을 수정하라고 하고, 어떤 사람은 WP가 설치된 디렉토리의 최상위에 있는 .htaccess 파일을 수정하라고 하고 있다.
어쨌든 아래 코드를 참고한다.

1-2-2. 글 만 리다이렉팅 시킬 경우
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} !FeedBurner [NC]
RewriteCond %{HTTP_USER_AGENT} !FeedValidator [NC]
RewriteRule ^feed/?([_0-9a-z-] )?/?$ http://feeds.feedburner.com/개인주소 [R=302,NC,L]
1-2-3. 글과 코멘트를 리다이렉팅 시킬 경우
# temp redirect all wordpress feeds to feedburner
 RewriteEngine on
 RewriteCond %{REQUEST_URI}      ^/?(feed.*|comments.*)        [NC]
 RewriteCond %{HTTP_USER_AGENT} !^.*(FeedBurner|FeedValidator) [NC]
 RewriteRule ^feed/?.*$          http://feeds.feedburner.com/개인주소      [L,NC,R=302]
 RewriteRule ^comments/?.*$      http://feeds.feedburner.com/개인코멘트주소 [L,NC,R=302]

2. 표출되는 feed 주소 자체를 변경 시키기

내가 성공한 방법은 아래 두 가지 이다.
글 feed의 경우 사용하고 있는 theme의 function.php파일에 코드를 추가해주었다.
코멘트는 DISQUS 서비스를 사용하고 있기 때문에 WP의 기본 코멘트 feed를 disqus 플러긴이 자동으로 바꿔서 표출해 버리기 때문에 코멘트 쪽은 disqis 플러긴 안에서 수정해 줘야 한다.

2-1. 글 feed 주소를 수정

/blog/wp-content/themes/내꺼/function.php 파일을 연다.
아래 코드를 추가해 준다.

/* FeedBurner */
function my_rss_link($output, $show)
{
	if (in_array($show, array('rss_url', 'rss2_url', 'rss', 'rss2', '')))
		$output = 'http://feeds.feedburner.com/개인주소';
	return $output;
}
add_filter('bloginfo_url', 'my_rss_link', 10, 2);
add_filter('feed_link', 'my_rss_link', 10, 2);

2-2. Disqus 코멘트 feed 주소를 수정

/blog/wp-content/plugins/disqus-comment-system/disqus.php 파일을 연다.
function dsq_bloginfo_url 부분을 찾는다. 대략 863번째 줄.
아래와 같이 수정한다.

function dsq_bloginfo_url($url) {
    if ( get_feed_link('comments_rss2') == $url && dsq_can_replace() ) {
        //return 'http://' . strtolower(get_option('disqus_forum_url')) . '.' . DISQUS_DOMAIN . DISQUS_RSS_PATH;
		return 'http://feeds.feedburner.com/개인코멘트주소';
    } else {
        return $url;
    }
}

– 끝 –
추가로 나는 블로그에서 카테고리를 제대로 활용하지 않기 때문에 카테고리의 feed가 나가는 걸 원치 않아서 Ultimate Category Excluder 플러긴을 설치하여 카테고리의 피드는 숨겨두었다.