WPML 붙박이 링크는 페이지가 이동하거나 이름이 변경되더라도 페이지와 글 사이의 링크가 끊어지지 않도록 방지합니다.
WordPress에서는 페이지 주소를 너무 쉽게 변경할 수 있어 들어오는 모든 링크가 끊어지는 문제(404 에러)가 발생할 수 있습니다. 404 에러를 유발할 수 있는 몇 가지 작업은 다음과 같습니다.
- 페이지의 상위 항목 변경
- 슬러그 변경
- 사이트의 고유주소 구조 변경
WPML은 URL 변경으로 인해 들어오는 링크가 끊어지는 것을 방지합니다. 링크를 생성할 때 WPML이 자동으로 해당 링크를 붙박이 링크로 만듭니다. (링크 생성 당시의) 페이지 URL을 저장하는 대신 페이지 번호를 저장합니다. 이 번호는 어떤 작업을 수행하더라도 절대 변경되지 않습니다.
그런 다음 페이지가 표시될 때 WPML은 연결하려는 페이지의 고유주소를 삽입합니다. URL이 변경될 때마다 해당 URL로 연결되는 모든 페이지가 즉시 업데이트되어 올바른 주소로 연결됩니다.
다음 스크린샷은 붙박이 링크가 활성화된 후 데이터베이스에서 내부 링크가 어떻게 보이는지 보여줍니다.
사용자는 이러한 “이상한” 링크를 절대 볼 수 없습니다. 대신 WPML이 페이지를 표시할 때 현재 고유주소로 바꿉니다.
붙박이 링크 제어
붙박이 링크 모듈을 활성화하면 처리할 문자열을 제어할 수 있습니다. 이렇게 하려면 WPML → 붙박이 링크 페이지로 이동하세요.

기본적으로 WPML은 글 본문의 모든 링크를 붙박이 링크로 전환합니다. 위젯 및 문자열의 링크도 붙박이 링크로 전환할 수 있습니다.
WPML을 사용하면 모든 일반 링크를 붙박이 링크로 일괄 교체할 수 있습니다. 또한 기존의 끊어진 링크를 보고하고 수정하는 데 도움을 줍니다.
일부 콘텐츠를 생성한 후 붙박이 링크를 활성화한 경우, 해당 기존 콘텐츠의 링크는 즉시 붙박이 링크로 전환되지 않습니다.
붙박이 링크 관리 화면에서는 일반(붙박이 링크가 아닌) 링크가 포함될 수 있는 콘텐츠의 양을 알려줍니다. WPML은 해당 콘텐츠를 스캔하고 모든 링크를 붙박이 링크로 변환할 수 있습니다. 이를 수행하려면 스캔 버튼을 클릭하세요.
붙박이 URL을 고유주소로 되돌리기를 클릭하면 언제든지 링크를 일반(붙박이 링크가 아닌) 고유주소로 되돌릴 수 있습니다.
다른 언어의 페이지로 연결
때로는 다른 언어로 된 페이지에 대한 링크를 삽입하고 싶을 수 있습니다. 붙박이 링크는 링크를 자동으로 조정하므로, 이 작업을 방지하고 링크가 동일한 언어를 가리키도록 조정할 수 있습니다.
다른 언어의 페이지에 대한 링크를 추가할 수 있게 하려면 테마의 functions.php 파일에 다음 필터를 추가해야 합니다.
다른 언어의 페이지에 대한 링크 허용
add_filter( 'wpml_sl_blacklist_requests', 'wpml_sl_blacklist_requests', 10, 2 );
function wpml_sl_blacklist_requests( $blacklist, $sitepress ) {
$blacklist[] = 'documentation';
return $blacklist;
}위의 코드에서 $blacklist 배열을 사용하여 연결하려는 원본 언어 페이지의 모든 URL 슬러그를 지정하세요.
예시에서는 영어 버전의 “Documentation”(슬러그 “documentation”) 및 “Page Builders”(슬러그 “page-builders”) 페이지로 연결하려고 하므로 다음 두 줄을 사용합니다.
연결을 허용할 URL 목록 지정 예시
$blacklist[] = 'documentation'; $blacklist[] = 'page-builders';
숏코드 콘텐츠 내부의 링크 처리
기본적으로 붙박이 링크 플러그인은 숏코드로 생성된 링크를 검색하지 않습니다.
페이지에 “?page_id=XX”와 같은 링크를 생성하는 숏코드가 있는 경우, 고유주소로 변환되지 않고 사용자에게 표시됩니다.
붙박이 링크로 이러한 숏코드 콘텐츠를 처리하려면 functions.php 파일에 다음 스니펫을 추가하세요.
숏코드 콘텐츠 내부의 링크 처리
if ( class_exists( 'WPML_Sticky_Links' ) ) {
global $WPML_Sticky_Links;
add_filter( 'do_shortcode_tag', [ $WPML_Sticky_Links, 'show_permalinks' ], 0 );
}
