大家好,我是FUNION数字营销实战派飞小优,在做外贸独立站少不了多语言,针对多语言站点也有很多实现工具,比如:G-translate、Polylang、WPML等,今天介绍下如何通过Polylang实现多语言站于一个后台中。
先看看效果
如何实现下拉效果
在wordpress建站后台,通过插件搜索即可进行安装。安装之后,启动该插件即可。刷新之后你的后台会出现“语言
”菜单栏。
添加你所需要的语言
设置”★”为默认的语言在文章管理处,即可开始多语言管理文章:
注:无论是文章,还是分类,标签,页面,菜单配置中等,都是中英文double管理。可以理解为,其实这个插件,是创建了两个网站,中英文版本各分别管理。
页面上的语言切换器
安装插件之后,在外观》菜单
处,即添加上语言切换器。
自定义模板-自定义菜单
如果没有菜单自定义的菜单,可以在自定义的主题文件function.php
中开启的你自定义菜单栏
/*
?开启导航菜单
!register_nav_menu
*/
register_nav_menu('menus', '顶部导航');
register_nav_menu('footer', '底部链接菜单配置');
因为设置了中英文,所以需要创建4个菜单。
在所需要展示菜单的地方直接wp_nav_menu
使用: 例如header.php 模板文件
wp_nav_menu(array(
'themen_location' => 'menus', // 定义的菜单标识
'container' => false, // 模板是ul-li模式,是否需要自定义dom结构
'menu_id' => 'menu' // 定义的菜单id
))
通过API自定义随意放置语音切换器
pll_the_languages:获取语言切换器
// 输出ul形式的多语言切换按钮 <?php pll_the_languages();?>
通过下拉框来展示多语言切换按钮,样式可以后期自定义处理。与通过菜单栏形式导入的切换器是一样的
<?php
$array = array(
'dropdown' =>1
)
pull_the_languages($array)
?>
$array
传入的常用API
(都为可选参数)
'dropdown'=>如果设置为0,则显示列表;如果设置为1,则显示下拉列表(默认值:0)
'show_names'=>如果设置为1,则显示语言名称(默认值:1)
'display_names_as'=>'name'或'slug'(默认:'name')
'show_flags'=>如果设置为1,则显示标志(默认值:0)
'hide_if_empty'=>如果设置为1,则隐藏没有帖子(或页面)的语言(默认值:1)
'force_home'=>强制链接到主页,如果设置为1(默认值:0)
'echo'=>回声如果设置为1,则返回一个字符串,如果设置为0(默认值:1)
'hide_if_no_translation'=>如果设置为1,则不存在翻译时隐藏语言(默认值:0)
'hide_current'=>如果设置为1,则隐藏当前语言(默认值:0)
'post_id'=> if set,显示由post_id定义的帖子(或页面)翻译的链接(默认值:空)
'raw'=>使用它来创建您自己的自定义语言切换器(默认值:0)
当切换的结构不能满足你的需求,可以使用raw
自定渲染切换器'raw'
返回的是一个多元数组,每个语言都有以下内容
- id => 语言id
- slug => urls 中使用的语言代码
- name => 语言名称
- url => 翻译的url
- flag => 语言国旗的url
- current_lang => 如果显示的是当前的语言为true,其他情况为false
- no_translation => 如果没有可用的翻译为true, 其他的情况为false
举个例子:
<?php
echo pll_current_language('name'); // 获取当前的语言
;?>
<div class="sub-menu">
<?php
$array = array(
'dropdown' => 1,
'raw' => 1
);
$lan = pll_the_languages($array);
foreach ($lan as $item) {
print_r("<a href={$item['url']}>{$item['name']}</a>");
}
?>
</div>
</div>
只需要更改你所需的样式和交互即可。
自定义一些字符串翻译
在 自定义 模板研发中,可能有些字符串,在主题内就需要翻译的。可通过 语言》字符串翻译
管理中,自定义一些字符串翻译。
如何开启这些自定义字符串,需在function.php
中定义
function codebyecom_after_setup_theme()
{
if (function_exists('pll_register_string')) {
pll_register_string('contact_us', '联系我们');
pll_register_string('hotline', '服务热线');
}
}
add_action('after_setup_theme', 'codebyecom_after_setup_theme');
function pl_e($string = '')
{
if (function_exists('pll_e')) {
pll_e($string);
} else {
echo $string;
}
}
在需要的地方(pll_e
)使用,例如, 在footer.php
中
<div class="contact" id="contact">
<div><?php echo pll_e('服务热线') ?></div>
<a href="tel:0101-888999">0101-888999</a>
<div><?php echo pll_e('业务合作') ?></div>
<a href="mailto:service@xxxx.cn">service@xxxx.cn</a>
</div>
写在最后
以上就是关于Wordpress如何用Polylang创建多语言独立站的详细教程内容,有任何使用问题欢迎留言,若有外贸建站需求不妨发送下方表单我们,我们会量身定制您的外贸独立站!