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 슬러그를 지정합니다.
이 예에서는 “문서”(슬러그 “문서”) 및 “페이지 빌더”(슬러그 “페이지 빌더”) 페이지의 영문 버전에 링크하고 싶으므로 다음 두 줄을 사용합니다:
$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 ); }