You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WordPress多站点中load_plugin_textdomain触发错误通知问题

WordPress多站点插件翻译报错:_load_textdomain_just_in_time调用错误

我的WordPress插件为Network Only类型,仅在多站点环境下测试。自WordPress 6.7版本起,收到错误通知:Function _load_textdomain_just_in_time was called incorrectly。

已尝试以下操作但均未解决问题:

  • 将翻译代码从plugins_loaded动作迁移到init动作,并设置了极低优先级(优先级1)
  • 单站点测试无异常,错误仅在多站点环境中出现
  • 将翻译代码移至插件主.php文件中
  • 通过get_current_blog_id检查当前站点,确保代码仅在指定站点触发

环境信息

目录结构

- pascalplugin
  -- languages
     -- pascalplugin-en_US.mo
     -- pascalplugin-en_US.po
     -- pascalplugin.pot
  -- pascalplugin.php

插件主文件代码(pascalplugin.php)

/**
 * Plugin Name:         PascalPlugin
 * Version:             1.0.0
 * Domain Path:         /languages/
 * Text Domain:         pascalplugin
 * Tested up to:        6.7
 * Requires at least:   5.9
 * Requires PHP:        7.0
 * Network:             true
 */

if ( ! defined( 'ABSPATH' ) ) {
    die( 'You cannot access plugin\'s files directly' );
}

if( !defined('PASCALPLUGIN_TEXTDOMAIN') ) {
    define( 'PASCALPLUGIN_TEXTDOMAIN', 'pascalplugin' );
}

if (!defined('PASCALPLUGIN__FILE__')) {
    define( 'PASCALPLUGIN__FILE__', __FILE__ );
}

add_action('init', '__init_load_textdomain', 1);
function __init_load_textdomain() {
    $dir = wp_normalize_path(dirname(PASCALPLUGIN__FILE__));
    $basename = plugin_basename(PASCALPLUGIN__FILE__);
    $basepath = trailingslashit(dirname($basename));
    $lang_dir = trailingslashit($basepath . 'languages');

    // Echo working properly and output "pascalplugin/languages/"
    echo $lang_dir;

    load_plugin_textdomain(PASCALPLUGIN_TEXTDOMAIN, false, $lang_dir);
}

内容的提问来源于stack exchange,提问作者Hady Shaltout

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 06:57:13