워드프레스 사이트/댓글 내의 외부 링크를 새 창에서 열기

참고: 인기 테마인 BE 테마(33%)The 7(35%) 할인 행사를 진행하고 있습니다.

워드프레스 댓글(코멘트)에 링크가 포함될 수 있습니다. 보통의 경우 댓글 내 링크를 클릭하면 현재 창을 벗어나 다른 페이지나 다른 사이트로 이동하게 될 수 있습니다. 이런 현상을 방지하기 위해 댓글 내의 URL을 클릭할 경우 새로운 창에서 실행되도록 할 수 있습니다.

함수를 사용하여 댓글 내의 외부 URL을 새 창에 열기

먼저 함수를 사용하는 방법을 살펴보겠습니다. 아래의 함수는 1) 댓글 내의 링크가 현재 사이트 내의 주소인지를 체크하여 현재 사이트 내의 링크이면 현재 창에서 이동하도록 하고, 외부 주소인 경우 새로운 창에서 열리도록 합니다. 2) 그리고 target 속성이 있는지는 체크하지 않습니다. 따라서 댓글 내의 링크에 이미 target 속성이 포함되어 있다면 충돌 문제가 발생할 수 있습니다.

// 코멘트 영역의 링크를 새 창으로 열기
function rt_add_link_target( $content ){
// use the <a> tag to split into segments
$bits = explode( '<a ', $content );
// loop though the segments
foreach( $bits as $key=>$bit ){
// find the end of each link
$pos = strpos( $bit, '>' );
// check if there is an end (only fails with malformed markup)
if( $pos !== false ){
// get a string with just the link's attibutes
$part = substr( $bit, 0, $pos );
// for comparison, get the current site/network url
$siteurl = network_site_url();
// if the site url is in the attributes, assume it's in the href and skip, also if a target is present
if( strpos( $part, $siteurl ) === false && strpos( $part, 'target=' ) === false ){
// add the target attribute
$bits[$key] = 'target="_blank" ' . $bits[$key];
}
}
}
// re-assemble the content, and return it
return implode( '<a ', $bits );
}

add_filter( 'comment_text', 'rt_add_link_target' );

// Source: http://www.roytanck.com/

댓글 내의 모든 URL을 새 창에서 열기

위의 함수는 외부 링크만 새 창에서 열지만 모든 링크를 새 창에서 열기를 원하는 경우에는 다음 함수를 사용합니다.

function comment_links_in_new_tab($text) {
$return = str_replace('<a', '<a target="_blank"', $text);
return $return;
}
add_filter('get_comment_author_link', 'comment_links_in_new_tab');
add_filter('comment_text', 'comment_links_in_new_tab');

// Source: http://www.tricksbag.com/

이 함수를 사용해보면 댓글 내의 외부 URL은 물론 내부 URL도 새 창에서 열립니다.

jQuery를 사용하여 구현하기

다른 방법으로 jQuery를 사용할 수도 있습니다. 이 방법은 여기를 참고해보시기 바랍니다.

플러그인 사용하기

마지막으로 가장 간편한 방법으로 플러그인을 사용할 수 있습니다. 이 기능을 제공하는 플러그인으로 WP Open Comment Links in New Window가 있습니다.
WP Open Comment Links in New Window

워드프레스 사이트 내의 모든 외부 URL을 새 창에서 열기

참고로 워드프레스 블로그 전체에서 외부 링크를 모두 새 창으로 열기를 원하는 경우에는 Open external links in a new window라는 플러그인을 사용할 수 있습니다.

Open external links in a new window



기부를 통해 이 블로그를 후원하실 수 있습니다.
워드프레스 설치/제작/문제해결이 필요한 경우 서비스(유료)를 요청해주세요.