在我的插件管理页面上获取Polylang可用语言

时间:2018-06-15 作者:Dahou

我正在制作一个插件,在我的管理页面中(我通过add_menu_page() 函数)我调用此函数pll_the_languages(["raw" => 1])) 但它什么也不返回,在客户端,它的工作很好。我在Polylang设置页面上添加了多种语言。如何从管理页面获取Polylang可用语言?

3 个回复
最合适的回答,由SO网友:Krzysiek Dróżdż 整理而成

根据Polylangs Function Reference, pll_the_languages

显示语言切换器。

而且很可能它使用了一些额外的CSS/JS来工作。如果要获取语言列表并用自定义代码显示它们,则可以改用此函数:

pll_languages_list($args);
它将返回语言列表。

$args是可选的数组参数。选项包括:

如果设置为1(默认值:0),则“hide\\u empty”会隐藏没有帖子的语言。“fields”如果设置为1,则只返回该字段。可能的值为“slug”、“locale”、“name”,默认值为“slug”

SO网友:Libla

Polylang提供该功能pll_languages_list() 但请注意,这将只返回一种类型的值slug.

您可以使用get_terms 查询包含名称和slug的所有语言。

get_terms( \'term_language\', [ \'hide_empty\' => false ] );

SO网友:MuturiAlex

您可以使用以下调用获取包含语言详细信息的数组:

if (function_exists(\'pll_languages_list\')) {
    return pll_languages_list(array(\'fields\' => array()));
}
结果是一个数组,您可以随意使用它。。。

{
term_id: 19,
name: "English",
slug: "en",
term_group: 0,
term_taxonomy_id: 19,
taxonomy: "language",
description: "en_US",
parent: 0,
count: 149,
tl_term_id: 20,
tl_term_taxonomy_id: 20,
tl_count: 35,
locale: "en_US",
is_rtl: 0,
w3c: "en-US",
facebook: "en_US",
flag_url: "http://***********.one/wp-content/plugins/polylang/flags/us.png",
flag: "<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHzSURBVHjaYkxOP8IAB//+Mfz7w8Dwi4HhP5CcJb/n/7evb16/APL/gRFQDiAAw3JuAgAIBEDQ/iswEERjGzBQLEru97ll0g0+3HvqMn1SpqlqGsZMsZsIe0SICA5gt5a/AGIEarCPtFh+6N/ffwxA9OvP/7//QYwff/6fZahmePeB4dNHhi+fGb59Y4zyvHHmCEAAAW3YDzQYaJJ93a+vX79aVf58//69fvEPlpIfnz59+vDhw7t37968efP3b/SXL59OnjwIEEAsDP+YgY53b2b89++/awvLn98MDi2cVxl+/vl6mituCtBghi9f/v/48e/XL86krj9XzwEEEENy8g6gu22rfn78+NGs5Ofr16+ZC58+fvyYwX8rxOxXr169fPny+fPn1//93bJlBUAAsQADZMEBxj9/GBxb2P/9+S/R8u3vzxuyaX8ZHv3j8/YGms3w8ycQARmi2eE37t4ACCDGR4/uSkrKAS35B3TT////wADOgLOBIaXIyjBlwxKAAGKRXjCB0SOEaeu+/y9fMnz4AHQxCP348R/o+l+//sMZQBNLEvif3AcIIMZbty7Ly6t9ZmXl+fXj/38GoHH/UcGfP79//BBiYHjy9+8/oUkNAAHEwt1V/vI/KBY/QSISFqM/GBg+MzB8A6PfYC5EFiDAABqgW776MP0rAAAAAElFTkSuQmCC" title="English" alt="English" width="16" height="11" style="width: 16px; height: 11px;" />",
home_url: "http://**********.one/en/front-page-2/",
search_url: "http://*********.one/en/",
host: null,
mo_id: "1716",
page_on_front: 2560,
page_for_posts: 499,
filter: "raw",
flag_code: "us"
},

结束

相关推荐

multi-language WordPress site

我正在制作由WordPress支持的多语言网站。WPML 不是免费的,而且它对数据库进行了太多额外的sql查询,所以对于我的站点来说,这不是一个好的解决方案。qTranslate 将所有语言保存在一个数据库行中,以后移动到另一个多语言插件非常复杂。<?php _e( \'<!--:en-->english text<!--:--><!--:de-->german text<!--:-->\' ); ?> xLanguage 两年多没有更新