- 상태
- 해결됨
문제 개요
yoast_breadcrumb() 함수를 사용하여 브레드크럼을 표시할 때, 번역 언어의 일부 페이지 링크에 번역된 슬러그 대신 원본 슬러그가 표시될 수 있습니다.
이는 성능에 미치는 영향을 줄이기 위해 의도된 것입니다. 링크를 클릭하면 올바른 페이지로 리디렉션됩니다.
임시 해결 방법
다음 임시 해결 방법을 사용하여 이 동작을 수정할 수 있습니다. 변경 사항을 적용하기 전에 반드시 사이트를 백업하세요.
/**
* Forces using the full resolution for all calls to `wpml_permalink` hook.
*
* @param string $url
* @param null|string $lang
* @param bool $absolute_url
*
* @return string
*/
function wpmlsupp_8689_force_full_permalink_conversion( $url, $lang = null, $absolute_url = false ) {
static $converting = false;
$lang = apply_filters( 'wpml_current_language', NULL );
if ( ! $converting ) {
$converting = true;
$url = apply_filters( 'wpml_permalink', $url, $lang, true );
$converting = false;
}
return $url;
}
// Hook with priority 5 to run before WPML Core filter.
add_filter( 'wpml_permalink', 'wpmlsupp_8689_force_full_permalink_conversion', 5, 3 );