关于插件的安装就不多说了,重点说下小型站点在多语言开发过程中遇到的一个关键性问题,就是对于主题页面中的装饰性文字,向导性文字该如何处理。比如说,新文章这类文字应该如何处理。
在Polylang插件中有一个函数就是解决这个问题的。
例如:
pll_register_string(myDate, “发布时间”);
那么主题中调用这个文字的时候就应该如下表述:
<?php echo pll__(“发布时间”) ?>
其中“发布时间”是在中文版本中显示的文字,mydate是这个变量的名称。后台维护界面如下:
重要:使用一个函数之前,你必须检查函数是否存在,否则,你的网站可能会在 Polylang 更新之前遇到致命错误(因为 WordPress 更新插件之前会先删除它)
使用方法:
pll_the_languages($args);
$args是一个可选参数,选项如下:
重要:如果以下拉方式使用语言切换器,你必须自行提供附加到语言切换器的 Action,如果你想要小工具提供的同一个内容,你可以在 polylang/include/widget.php 中找到正确的代码,如果不使用下拉选项,你必须自定输入ul标签。
<?php // 输出语言名称列表 ?> <ul><?php pll_the_languages(); ?></ul>
<?php // 输出国旗列表 (没有语言名称) ?> <ul>
<?php pll_the_languages(array('show_flags'=>1,'show_names'=>0)); ?></ul>
<?php // 以下拉方式输出语言列表 ?> <?php pll_the_languages(array('dropdown'=>1)); ?>
如果以上选项不够用,你还可以是用 ‘raw’ 参数自定义语言切换器。
$translations = pll_the_languages(array('raw'=>1));
此函数将赴会一个多元数组,每个语言都有以下内容。
使用方法:
pll_current_language($value);
返回当前语言的全名,或 WordPress locale,(类似于WordPress核心函数‘get_locale’),或当前语言的slug(2个字母的语言代码)
使用方法:
pll_default_language($value);
返回当前语言的全名,或 WordPress locale,(类似于WordPress核心函数‘get_locale’),或当前语言的 slug(2个字母的语言代码)
这个函数获取的是指定文章对应的当前语言的文章 ID (注意:不是文章对象),理解起来可能有点绕,比如说关于我们中文语言的页面 ID 是 “100”,而关于我们英文语言版本的页面 ID 是 “101”,这个函数就是获取这两个页面的 ID 的。下面函数中的$post_id
参数就是 “100”,在中文语言下,返回的还是 “100”,在英文语言下,返回的 “101”,同理,我们把$post_id
设置为 “101” 也是一样的效果。
使用方法:
pll_get_post($post_id, $slug);
有时候,我们需要根据固定的文章 ID 获取某篇文章的内容,如果直接使用 WordPress 的 get_post
函数获取,获取的只是固定的一篇文章,切换语言时页面内容不会根据语言的不同而变化。Polylang 当然考虑到这个问题了,使用以下的方法即可获取某篇文章当前语言或者对应的翻译内容。
<?php $post = get_post( pll_get_post( 97, pll_current_language() ) ); ?>
使用方法:
pll_get_post($post_id, $slug);
以整数方法返回翻译后的分类id
使用方法:
pll_home_url($slug);
以字符串方式返回当前请求语言的 URL。
游客回答:(0)