[워드프레스] 특정 글의 링크를 바꾸는 방법

Last Updated: 2016년 08월 02일 댓글

예를 들어, 워드프레스에서 특정 글 제목을 클릭했을 때 글 내용으로 이동하는 것이 아니라 특정 URL(예: www.google.com)로 이동시키고 싶은 경우가 있을 수 있습니다. 이 경우 여러 가지 방법을 생각해볼 수 있습니다. 가장 간단한 방법은 워드프레스에서 제공하는 후크를 사용하는 것입니다. 이와 관련된 후크로서 post_link 필터가 있습니다.

WordPress Codex 페이지를 방문하여 이 필터에 대한 내용을 확인할 수 있습니다. 이 페이지에 제공되는 샘플을 통해 이 필터를 어떻게 사용하는지를 파악할 수 있습니다.

function append_query_string( $url, $post, $leavename ) {
if ( $post->post_type == 'post' ) {
$url = add_query_arg( 'foo', 'bar', $url );
}
return $url;
}
add_filter( 'post_link', 'append_query_string', 10, 3 );

위와 같은 형식으로 사용이 가능합니다. 특정 글의 타이틀 URL을 변경하려면 post id를 체크하여 특정 post id일 경우 $url을 변경시켜주면 원하는 결과를 얻을 수 있습니다. 글 ID를 확인하는 방법은 요소 검사를 해보면 쉽게 파악이 가능합니다. 예를 들어, 크롬에서 요소 검사를 했을 때 다음과 같이 글 제목 부분에 Post id가 나와 있습니다.

Check post id in wordpress

또는 글 ID를 확인할 수 있는 플러그인이 있습니다(참고). 위의 경우 post id는 10762가 됩니다. 그러면 다음과 같은 함수를 테마의 함수 파일에 추가합니다. (테마의 함수 파일에 사용자 코드를 추가하는 방법은 이 글을 참고해보시기 바랍니다.)

// 특정 글 타이틀 url 리디렉션
//  Change Post url for a specific post in WordPress
function change_url_for_specific_post( $url, $post, $leavename ) {
$post_id = $post->ID;
if ( $post_id == '10762' ) {
$url = 'http://www.google.com'; // URL 변경
}
return $url;
}
add_filter( 'post_link', 'change_url_for_specific_post', 10, 3 );

post id는 적절히 수정합니다. 그러면 해당 글 제목을 클릭하면 지정된 url로 이동하게 됩니다.

redirect to external url when clicking a post in wordpress

위의 그림처럼 제목에 마우스를 올리면 브라우저 하단에 링크된 주소가 "www.google.com"으로 바뀌어져 있음을 확인할 수 있습니다. 이 경우 (테마에 따라) 새로운 창이나 탭이 아닌 직접 이동하게 됩니다. 만약 target=_blank 속성을 추가하고 싶은 경우 jQuery를 사용하여 특정 링크의 속성을 변경해주도록 합니다(참고).

또 다른 방법으로 해당 글 URL 자체를 리디렉션시키는 방법도 가능합니다. 자세한 내용은 이 글을 참고해보시기 바랍니다.

작성자 아바타

워드크래커는 전문 영한번역가로 활동하고 있으며 10년 이상 워드프레스 관련 정보를 제공하는 워드프레스 정보꾸러미 블로그를 운영하고 있다. 또한, ‘워드프레스를 사용하는 사람들’ 네이버 카페도 관리하고 있다.

댓글 남기기

Leave a Comment

카카오톡 상담 카톡 서비스 상담