大家好,我是FUNION数字营销实战派飞小优,在做外贸独立站少不了多语言,针对多语言站点也有很多实现工具,比如:G-translate、Polylang、WPML等,今天介绍下如何通过Polylang实现多语言站于一个后台中。

先看看效果

项目实践demo

如何实现下拉效果

在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>

只需要更改你所需的样式和交互即可。

前端样式css

自定义一些字符串翻译

在 自定义 模板研发中,可能有些字符串,在主题内就需要翻译的。可通过 语言》字符串翻译 管理中,自定义一些字符串翻译。

字符串翻译

如何开启这些自定义字符串,需在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创建多语言独立站的详细教程内容,有任何使用问题欢迎留言,若有外贸建站需求不妨发送下方表单我们,我们会量身定制您的外贸独立站!

* 文章内容很有用,那就5星好评吧!😘

0 / 5 好评 5

Your page rank:

提交需求表单



    数字人
    微信

    扫码了解更多服务

    qr

    1对1专家沟通

    小程序

    funion_xcx