케이보드 언어 파일 로드 관련 오류 메시지

1. 정확한 제품 또는 플러그인 이름

케이보드

케이보드 댓글 플러그인

2. 상세 내용

 

케이보드와 케이보드 댓글 플러그인을 설치하면 다음과 같은 오류 메시지가 1~2초 간격으로 지속적으로 발생합니다.

 

[05-Oct-2025 04:40:10 UTC] PHP Notice:  Function _load_textdomain_just_in_time was called <strong>incorrectly</strong>. Translation loading for the <code>kboard-comments</code> domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the <code>init</code> action or later. Please see <a href="https://developer.wordpress.org/advanced-administration/debug/debug-wordpress/">Debugging in WordPress</a> for more information. (This message was added in version 6.7.0.) in /home/public_html/wp-includes/functions.php on line 6121
[05-Oct-2025 04:40:10 UTC] PHP Notice:  Function _load_textdomain_just_in_time was called <strong>incorrectly</strong>. Translation loading for the <code>kboard</code> domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the <code>init</code> action or later. Please see <a href="https://developer.wordpress.org/advanced-administration/debug/debug-wordpress/">Debugging in WordPress</a> for more information. (This message was added in version 6.7.0.) in /home/public_html/wp-includes/functions.php on line 6121

 

원인은 KBoard/kboard-comments 플러그인이 번역 로딩을 너무 이르게 실행해서입니다. WordPress 6.7부터는 load_plugin_textdomain() 같은 번역 로딩(또는 __(), _e() 호출로 JIT 번역 로딩 유발)을 init 액션 이후에 해야 하는데, 해당 플러그인 코드가 파일 로드 시점(top-level)이나 너무 이른 훅(예: plugins_loaded 등)에서 언어 파일을 불러와 _load_textdomain_just_in_time가 조기 트리거되어 경고가 발생합니다.

 

확인하셔서 이 오류 메시지가 표시되지 않도록 플러그인 파일을 업데이트해주시면 감사하겠습니다.

 

3. 확인 가능한 상세 페이지 주소

 

 

4. 수정한 코드 내역 (있다면)

 

케이보드 플러그인 index.php 파일에서 언어 파일 로드 관련 코드 예시:

 

// 기존 훅은 그대로 두되, 세션만 처리
add_action('plugins_loaded', 'kboard_plugins_loaded');
function kboard_plugins_loaded(){
    if(!session_id() && (!is_admin() || kboard_id()) && !wp_is_json_request()){
        session_start();
    }
}

// 번역 로딩은 init 시점으로 분리 (가능한 이른 우선순위)
add_action('init', 'kboard_load_textdomain_late', 0);
function kboard_load_textdomain_late(){
    // 중복 로딩 방지
    static $loaded = false;
    if($loaded) return;
    $loaded = true;

    $rel_path = dirname(plugin_basename(__FILE__)) . '/languages/';
    if(version_compare($GLOBALS['wp_version'], '6.7', '<')){
        // 표준 방식 (WP < 6.7)
        load_plugin_textdomain('kboard', false, $rel_path);
    }
    else{
        // WP 6.7+ : init 이후 명시 로딩 (파일 존재 시)
        $locale = determine_locale();
        $mofile = trailingslashit(KBOARD_DIR_PATH) . 'languages/kboard-' . $locale . '.mo';

        if(file_exists($mofile)){
            load_textdomain('kboard', $mofile);
        } else {
            // 폴백: 플러그인 상대경로 탐색
            load_plugin_textdomain('kboard', false, $rel_path);
        }
    }
}

 

좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
워드프레스 에러 기술지원 서비스 전문가에게 맡기세요
좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기