WordPress다른 언어로 클릭할 때 로고 이미지 변경
저는 다국어 웹사이트를 가지고 있습니다.제가 그것을 바꿀 수 있는 방법이 있나요?logo.png
.png
"인도"로 바꾼 후에?저는 지금 폴리랑 플러그인을 사용하고 있습니다.이 솔루션을 사용해 보았지만 작동하지 않았습니다. - https://support.pojo.me/docs/polylang-change-logo-every-language/ .
이 문제를 해결하는 방법을 아는 사람이 있습니까?
나의 규칙
function pojo_polylang_get_multilang_logo( $value ) {
if ( function_exists( 'pll_current_language' ) ) {
$logos = array(
'en' => 'logo-en.png',
'in' => 'logo-in.png',
);
$default_logo = $logos['en'];
$current_lang = pll_current_language();
$assets_url = get_stylesheet_directory_uri() . '/assets/images/';
if ( isset( $logos[ $current_lang ] ) )
$value = $assets_url . $logos[ $current_lang ];
else
$value = $assets_url . $default_logo;
}
return $value;
}
add_filter( 'theme_mod_image_logo', 'pojo_polylang_get_multilang_logo' );
우리는 14개의 카테고리를 포함하는 블로그에서 거의 동일한 작업을 수행했으며 각 카테고리는 자체 로고를 표시해야 했습니다.
우리의 경우, 우리는 db에서 로고 경로에서 로고를 가져오는 동안 url을 체크인하고 그에 따라 테마의 로고 표시를 재정의하는 사용자 지정 php 코드를 사용했습니다.
이 경우 언어 변수에 쉽게 액세스할 수 있으므로 테마의 머리글에서 수행해야 하는 모든 작업이 쉬워집니다.php는 언어에 따라 데이터베이스(가능하면 옵션 테이블에서)에서 로고 이미지를 가져오는 동안 로고 주위의 if 문입니다.
//fetch the current language ( you can use https://polylang.pro/doc/function-reference/)
$current_language = pll_current_language();
//while fetching the logo for the current language, it's best if you add a fallback to the default language in case the option for the current language is not set
$logo_image = get_option("logo_".$current_language,"logo_".$pll_default_language());
?> <img class="logo" src="<?php echo $logo_image; ?>"
이것이 당신이 찾고 있는 것이기를 바랍니다.
당신의 코드에서 당신은 설정했습니다.$default_logo = $logos['en'];
그리고 당신의$current_lang
값도 'en'이므로 언어를 변경할 때 선택한 언어의 짧은 코드에 따라 $current_value 값을 변경해야 합니다. 그렇지 않으면 $default_value와 $value가 동일합니다.
LOGO라는 문자열을 쉽게 등록하고 모든 링크(또는 이름)를 넣을 수 있습니다!
1단계: 아래 코드를 함수에 추가합니다.php
pll_register_string("LOGO","example.com/path/to/images/logo.png"); // this url for default language
2단계: 이제wp-admin
" 역래에 " 서"에 "의 " 번역Languages
모든 언어로 "LOGO" 필드를 사용할 수 있습니다.
3단계: 로고 URL(모든 언어)을 보려면 다음 코드를 사용하십시오.
<?php pll_e("LOGO"); ?>
참고: 이 필드에 로고 이름만 입력하려면 코드는 다음과 같습니다.
<?php
$assets_url = get_stylesheet_directory_uri() . '/assets/images/';
echo $assets_url; pll_e("LOGO"); ?>
당신의 페이지가 SEO 프렌들리이고 당신이 경우<html lang=''>
다른 언어의 경우 jQuery를 통해 클라이언트 측의 로고를 변경할 수 있습니다.
function pojo_polylang_get_multilang_logo( $value ) {
if ( function_exists( 'pll_current_language' ) ) {
$logos = array(
'en' => 'logo-en.png',
'in' => 'logo-in.png',
);
$default_logo = $logos['en'];
$current_lang = pll_current_language();
$assets_url = get_stylesheet_directory_uri() . '/assets/images/';
if ( isset( $logos[ $current_lang ] ) )
$value = $assets_url . $logos[ $current_lang ];
else
$value = $assets_url . $default_logo;
}
return $value;
}
add_filter( 'theme_mod_image_logo', 'pojo_polylang_get_multilang_logo' );
에서 보면$assets_url
$return $value
문if 문이 됩니다.
$assets_url = get_stylesheet_directory_uri() . '/assets/images/';
if ( isset( $logos[ $current_lang ] ) )
$value = $assets_url . $logos[ $current_lang ];
else
$value = $assets_url . $default_logo;
}
return $value
로는 if 에 if 문이 없으면 제가본바는로가 되어 있지 가 보입니다.{}
아마도 당신이 그것을 다음과 같이 바꾼다면 그것이 작동할 것인가요?
$assets_url = get_stylesheet_directory_uri() . '/assets/images/';
if ( isset( $logos[ $current_lang ] ) ) {
$value = $assets_url . $logos[ $current_lang ];
} else {
$value = $assets_url . $default_logo;
}
}
return $value
이렇게 하면 캐시가 무효화되고 결과적으로 성능에 영향을 미치기 때문에 PHP에서는 권장하지 않습니다.대신 JavaScript, JQuery를 사용하여 언어 속성에 따라 로고를 변경해야 합니다.
편집: WPML은 실제로 WPML String Translations 확장을 설치하여 이를 허용하는 것 같습니다.
언급URL : https://stackoverflow.com/questions/48960489/wordpress-change-logo-image-when-i-click-to-a-different-language
'programing' 카테고리의 다른 글
Microsoft SQL Server의 특정 순서 위치에 새 테이블 열 추가 (0) | 2023.07.06 |
---|---|
dplyr 패키지를 조건부 돌연변이에 사용할 수 있습니까? (0) | 2023.07.06 |
SSIS - 잠재적인 데이터 손실로 인해 값을 변환할 수 없습니다. (0) | 2023.07.06 |
Spark, Python 및 MongoDB가 함께 작동하도록 하기 (0) | 2023.07.06 |
iOS에서 Phonegap을 사용하여 방향 변경을 올바르게 감지하려면 어떻게 해야 합니까? (0) | 2023.07.06 |