<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
	<channel>
				<title><![CDATA[케이보드 언어 파일 로드 관련 오류 메시지]]></title>
		<link>https://www.cosmosfarm.com/threads/rss/document/72952</link>
		<description><![CDATA[<p>1. 정확한 제품 또는 플러그인 이름</p>

<p>케이보드</p>

<p>케이보드 댓글 플러그인</p>

<p>2. 상세 내용</p>

<p> </p>

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

<p> </p>

<p>[05-Oct-2025 04:40:10 UTC] PHP Notice:  Function _load_textdomain_just_in_time was called &lt;strong&gt;incorrectly&lt;/strong&gt;. Translation loading for the &lt;code&gt;kboard-comments&lt;/code&gt; 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 &lt;code&gt;init&lt;/code&gt; action or later. Please see &lt;a href="https://developer.wordpress.org/advanced-administration/debug/debug-wordpress/"&gt;Debugging in WordPress&lt;/a&gt; for more information. (This message was added in version 6.7.0.) in /home/public_html/wp-includes/functions.php on line 6121<br />
[05-Oct-2025 04:40:10 UTC] PHP Notice:  Function _load_textdomain_just_in_time was called &lt;strong&gt;incorrectly&lt;/strong&gt;. Translation loading for the &lt;code&gt;kboard&lt;/code&gt; 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 &lt;code&gt;init&lt;/code&gt; action or later. Please see &lt;a href="https://developer.wordpress.org/advanced-administration/debug/debug-wordpress/"&gt;Debugging in WordPress&lt;/a&gt; for more information. (This message was added in version 6.7.0.) in /home/public_html/wp-includes/functions.php on line 6121</p>

<p> </p>

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

<p> </p>

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

<p> </p>

<p>3. 확인 가능한 상세 페이지 주소</p>

<p> </p>

<p> </p>

<p>4. 수정한 코드 내역 (있다면)</p>

<p> </p>

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

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

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

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

<p>        if(file_exists($mofile)){<br />
            load_textdomain('kboard', $mofile);<br />
        } else {<br />
            // 폴백: 플러그인 상대경로 탐색<br />
            load_plugin_textdomain('kboard', false, $rel_path);<br />
        }<br />
    }<br />
}<br />
<br />
 </p>]]></description>
		<copyright>Copyright 2026, 코스모스팜</copyright>
				<item>
			<title><![CDATA[KBoard/kboard-comments 플러그인이 번역 로딩을 너무 이르게 실행하여 오류 메시지가 발생하는 문제입...]]></title>
			<link>https://www.cosmosfarm.com/threads/document/72953</link>
			<description><![CDATA[<p>KBoard/kboard-comments 플러그인이 번역 로딩을 너무 이르게 실행하여 오류 메시지가 발생하는 문제입니다. WordPress 6.7부터는 `load_plugin_textdomain()` 같은 번역 로딩을 `init` 액션 이후에 해야 합니다.</p>
<p></p>
<p>**해결 방법:**</p>
<p></p>
<p>KBoard 플러그인의 index.php 파일에서 언어 파일 로드 관련 코드를 다음과 같이 수정하여 업데이트해주세요.</p>
<p></p>
<p>```php</p>
<p>// 기존 훅은 그대로 두되, 세션만 처리</p>
<p>add_action('plugins_loaded', 'kboard_plugins_loaded');</p>
<p>function kboard_plugins_loaded(){</p>
<p>	if(!session_id() && (!is_admin() || kboard_id()) && !wp_is_json_request()){</p>
<p>		session_start();</p>
<p>	}</p>
<p>}</p>
<p></p>
<p>// 번역 로딩은 init 시점으로 분리 (가능한 이른 우선순위)</p>
<p>add_action('init', 'kboard_load_textdomain_late', 0);</p>
<p>function kboard_load_textdomain_late(){</p>
<p>	// 중복 로딩 방지</p>
<p>	static $loaded = false;</p>
<p>	if($loaded) return;</p>
<p>	$loaded = true;</p>
<p></p>
<p>	$rel_path = dirname(plugin_basename(__FILE__)) . '/languages/';</p>
<p>	if(version_compare($GLOBALS['wp_version'], '6.7', '<')){</p>
<p>		// 표준 방식 (WP < 6.7)</p>
<p>		load_plugin_textdomain('kboard', false, $rel_path);</p>
<p>	}</p>
<p>	else{</p>
<p>		// WP 6.7+ : init 이후 명시 로딩 (파일 존재 시)</p>
<p>		$locale = determine_locale();</p>
<p>		$mofile = trailingslashit(KBOARD_DIR_PATH) . 'languages/kboard-' . $locale . '.mo';</p>
<p>		if(file_exists($mofile)){</p>
<p>			load_textdomain('kboard', $mofile);</p>
<p>		}</p>
<p>		else {</p>
<p>			// 폴백: 플러그인 상대경로 탐색</p>
<p>			load_plugin_textdomain('kboard', false, $rel_path);</p>
<p>		}</p>
<p>	}</p>
<p>}</p>
<p>```</p>
<p></p>
<p>위 코드는 WordPress 버전 6.7 미만에서는 표준 방식으로 언어 파일을 로드하고, 6.7 이상에서는 `init` 액션 이후에 명시적으로 로드하도록 변경합니다.</p>
<p></p>]]></description>
			<author>스레드봇 AI</author>
			<pubDate>Sun, 05 Oct 2025 07:33:12 +0000</pubDate>
			<category>KBoard</category>
		</item>
			</channel>
</rss>