WordPress 多语言插件 Polylang 常见问题
小本本在这里向大家推荐一个简洁好用的WordPress多语言插件——Polylang。后台设置选项非常简洁,使用流程也非常流畅。对于初次接触Polylang的开发者,可能会遇到一些问题。下面是小本本总结的使用Polylang开发多语言WordPress站点过程中遇到的一些常见问题,发布出来供大家参考。
怎么判断当前主题的语言?
WordPress为主题和插件开发者提供了两个功能来判断主题的当前语言:
- get_locale(), 以en_US的格式返回当前的语言代码
- get_bloginfo(‘language’),以en-US的格式返回当前的语言名称
注意,两个函数返回的结果不同的地方在于‘_’和‘-‘。关于这两个返回值的不同,可以参考下面的两个论坛话题。
Return the current language as variable for your template
How to translate/switch specific contents on templates
另外,Polylang提供了pll_current_language
函数,可以返回以上两种不同的格式。
怎么在主题或插件中添加用户可以翻译的字符串?
你需要在仪表盘使用pll_register_string
注册需要翻译的字符串,然后在前台使用pll__
或pll_e
调用。
注册需要翻译的字符串:
pll_register_string('name', 'String to translate');
显示字符串:
pll_e('String to translate');
怎么翻译自定义文章类型和自定义分类法?
Polylang内置了自定义文章类型和自定义分类法的支持,只需要使用‘init’动作注册他们就可以了。
注册自定义文章类型和分类法后,在Polylang设置处,启用对自定义文章类型和自定义分类法的支持就可以了。另外,你还可以使用‘pll_get_post_types’或‘pll_get_taxonomies’过滤器进行更多控制。
怎么在不同的语言中添加内容而不是只在当前语言中?
Polylang基于WordPress主查询设置了语言信息。但是可以在不同的语言中添加相同的信息,例如:你可以在英文页面列出最新的5篇法语文章。只需要在自定义查询页面添加一个‘lang’参数就可以了。
$posts = get_posts(array(
'post_type' => 'post',
'lang' => 'fr', //在查询中使用语言别名
'showposts' => 5
));
‘lang’参数不仅能在文章中使用,也可以在分类和评论中使用,只需要在使用‘get_terms’和‘get_comments’把‘lang’传递进去就可以了。
可以查询多语言内容吗?
当然可以,比如:
$posts = get_posts(array(
'post_type' => 'post',
'lang' => 'de,fr', //查询德语和法语的文章
'showposts' => 5
));
可以查询所有语言的内容吗?
当然也是可以的,比如:
$posts = get_posts(array(
'post_type' => 'post',
'lang' => '', //查询所有语言的文章
'showposts' => 5
));
怎么在循环中显示指向文章翻译的链接?
示例:
<?php while(have_posts()): the_post(); ?>
<ul class='translations'>
<?php pll_the_languages(array('post_id' => $post->ID)); ?>
</ul>
<?php the_content(); ?>
<?php endwhile; ?>
怎么在前端ajax请求中加载Polylang API?
Polylang可以在前端自动检测到AJAX请求,然后加载当前语言。你可以在请求(POST或GET)中设置“lang”参数(使用语言代码)。
Polylang在什么时候加载语言?
有两种情况:
- 在内容中设置了语言(默认):Polylang需要延缓语言加载,然后在一个挂载到‘wp’的权重为5钩子的函数中加载。
- 语言代码添加到了所有urls:没有必要延缓语言加载,就像Polylang没有启用一样。
第一种情况中,插件作者不应该在‘wp’动作执行前翻译字符串。Polylang提供了一个新的在语言定义之后马上执行的Action‘pll_language_defined’(不管用户怎么设置语言,都可以正常执行)

-
搭建一个WordPress网站需要多少成本 2023-11-06 00:09:51
-
Symlink介绍(附:如何使用Symlink进行WordPress开发) 2023-11-05 23:38:32
-
让WordPress实现数据库同步的插件:HyperDB 2023-10-24 23:40:49
-
allegro电商平台值得做吗(附:2023年Allegro注册流程指南) 2023-10-08 21:53:39
-
印度跨境电商平台有哪些(附:印度跨境电商做什么产品好) 2023-10-08 21:34:23
-
跨境电商必看的几大海外二手电商平台 2023-10-08 18:04:42
-
WordPress同城互联网产品解决方案:UBASE 2023-10-03 16:40:39
-
WordPress网站的安全插件:wordfence 2023-09-14 09:25:18
-
WordPress 6.3 支持在手动更新插件和主题失败后回滚旧版本 2023-08-28 16:58:45
-
WordPress 6.3版本(2023年8月)性能提升了哪些? 2023-08-28 16:56:02