如果您希望设计自定义的 TranslatePress 语言切换器,您可以实现一项功能来帮助您获取使用插件时所需的所有必要信息。
创建 TranslatePress 自定义语言切换器
需要调用的函数是
trp_custom_language_switcher().该函数返回具有以下参数的数组:
$custom_ls_array[$language_code]['language_name']– the full language name$custom_ls_array[$language_code]['language_code']– the language code of the respective language$custom_ls_array[$language_code]['short_language_name']– the language code of the language, the slug which will be used in the url$custom_ls_array[$language_code]['flag_link']– a link to the flag of the respective language$custom_ls_array[$language_code]['current_page_url']– the URL of the current language with the language slug added

以下是定制语言切换器的示例:

<?php $array = trp_custom_language_switcher(); ?>
<!-- IMPORTANT! You need to have data-no-translation on the wrapper with the links or TranslatePress will automatically translate them in a secondary language. -->
<ul data-no-translation>
<!-- // Check whether TranslatePress can run on the current path or not. If the path is excluded from translation, trp_allow_tp_to_run will be false -->
<?php if ( apply_filters( 'trp_allow_tp_to_run', true ) ){ ?>
<?php foreach ($array as $name => $item){ ?>
<li style="list-style-image: url(<?php echo $item['flag_link'] ?>)">
<a href="<?php echo $item['current_page_url']?>">
<span><?php echo $item['short_language_name']. ':' . $item['language_name']?>
</span>
</a>
</li>
<?php } ?>
<?php } ?>
</ul>注意:您需要在带有链接的包装器上使用
data-no-translation ,否则 TranslatePress 会自动将它们翻译成第二语言。
您还可以创建自定义语言切换器短代码,然后可以使用类似 [custom-language-switcher]
/*
* Custom language switcher shortcode
*/
add_shortcode('custom-language-switcher', 'trpc_custom_language_switcher', 10);
function trpc_custom_language_switcher(){
// Check whether TranslatePress can run on the current path or not. If the path is excluded from translation, trp_allow_tp_to_run will be false
if ( apply_filters( 'trp_allow_tp_to_run', true ) ){
$languages = trp_custom_language_switcher();
$html = "<ul data-no-translation>";
foreach ($languages as $name => $item) {
$html .= "<li style='list-style-image: url({$item['flag_link']})'>";
$html .= "<a href='{$item['current_page_url']}'>";
$html .= "<span>{$item['language_name']}</span></a></li>";
}
$html .= "</ul>";
return $html;
}
}如果您只需要快速创建一个经典的语言切换器,请查看TranslatePress 的默认语言切换器设置。

