WordPress插件翻译-load_plugin_textdomain

jek*_*123 5 wordpress plugins wpml

我正在使用自定义Wordpress插件,但无法将其准备为多语言。

它确实正确加载了主要语言的.mo文件,但是在切换语言(使用WPML)时,它始终显示主要语言(在这种情况下为德语)的翻译。因此,当我使用英语时,它仍会显示德语翻译。

这是我的代码:

在标题中:

/*
Plugin Name: MM Jobs
Plugin URI: http://example.com/
Description: Custom Jobs Plugin to create new Jobs
Version: 1.3.84
Author: Jekey
Author URI: http://example.com/
Text Domain: mm-jobs
Domain Path: /languages
*/
Run Code Online (Sandbox Code Playgroud)

然后:

function mm_jobs_plugins_loaded() {
        load_plugin_textdomain( 'mm-jobs', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
    }
    add_action( 'plugins_loaded', 'mm_jobs_plugins_loaded', 0 );
Run Code Online (Sandbox Code Playgroud)

.mo文件正确,因为它已经加载了德语翻译。命名为:/ plugins / mm-jobs / languages /下的mm-jobs-zh_CN.mo或mm-jobs-de_DE.mo

您知道导致问题的原因是什么?

jek*_*123 3

万一有人遇到同样的问题。我有

get_plugin_data( __FILE__ );
Run Code Online (Sandbox Code Playgroud)

在我的代码中。这导致运行 wp_core 函数并在其中加载文本域,因此我的 en_US.mo 被 de_DE.mo 覆盖

我不知道为什么 get_plugin_data() 采用了错误的语言文件。它似乎为使用该功能的不同插件选择了正确的插件。