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);
}
}
}
AI에 의해 자동 생성된 답변이에요 😀
KBoard/kboard-comments 플러그인이 번역 로딩을 너무 이르게 실행하여 오류 메시지가 발생하는 문제입니다. WordPress 6.7부터는 `load_plugin_textdomain()` 같은 번역 로딩을 `init` 액션 이후에 해야 합니다.
**해결 방법:**
KBoard 플러그인의 index.php 파일에서 언어 파일 로드 관련 코드를 다음과 같이 수정하여 업데이트해주세요.
```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);
}
}
}
```
위 코드는 WordPress 버전 6.7 미만에서는 표준 방식으로 언어 파일을 로드하고, 6.7 이상에서는 `init` 액션 이후에 명시적으로 로드하도록 변경합니다.
↓ 아래 버튼을 눌러서 피드백해주세요.