函数.php上的polylang:pll_e()&pll__()不起作用

时间:2013-02-13 作者:Lightworker

我有关于函数的。php一些函数可以响应HTML块。问题出现在使用自定义函数pll\\u e()和pll\\u()的Polylang插件上。

这些在索引上很有效。php可以处理所有主题,但不能正确处理函数。php基本上总是返回默认的语言字符串,甚至在管理端注册了它们。

所以这些块印在索引上。php使用pll_u函数,运行良好。但在函数上打印相同的块。php,始终使用英语。

我已经在官方插件支持论坛上发布了这篇文章。还没有答案。

这里有人知道它可能是什么吗?

非常感谢你!

1 个回复
SO网友:Simon

我没有使用Polylang插件的经验,但我认为可以安全地假设这与Polylang插件的加载顺序和主题的functions.php. 在全局范围内调用函数时(即不是从另一个函数中调用)index.php 或任何其他模板文件,它将在页面加载过程的后期阶段,在WordPress完全初始化之后,甚至在服务器开始向客户端发送响应之后执行。

从的全局范围调用的函数functions.php 然而,文件将在更早的时候执行。在典型的页面加载过程中,基本上首先WordPress会自行设置,然后加载插件,最后加载主题。然而,这个过程并不像你想象的那样是线性的,因为一些插件可能依赖于功能,而这些功能在WordPress完全初始化、加载主题或页面服务器响应开始之前可能不可用。WordPress通过使用hooks, 它允许插件或主题在加载过程中的特定阶段执行代码。

要做更长的回答,你需要做的是确保你不打电话pll_e()pll__() 直到您确定Polylang插件已准备就绪。这可以通过查看其源代码(或者其文档)来确定,但我想init 钩子就足够了。在的全局范围内调用的函数functions.php 将在init 钩子,但通过添加init 钩子可以使函数在以后的阶段运行。方法如下:

function my_setup() {
    global $some_var;
    $some_var = pll__(\'A string in need of localization\', \'localization_domain\'); // This is assuming that this function behaves analogous to __() 

    pll_e("We\'ll just echo this, somewhere", \'localization_domain\');
}
add_action(\'init\', \'my_setup\');

结束

相关推荐

Functions.php:从博客中排除类别

所以很明显,如何从模板中排除某些类别,但我不想修改4个模板,使它们忽略某个类别。有没有一种方法可以将某个类别从阅读设置的“博客”集中排除?我正在将博客分配到名为“博客”的页面。。。但显然,档案和搜索也需要对这一超出类别的内容视而不见。我宁愿在里面做functions.php