<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
	<channel>
				<title><![CDATA[kboard_list_where 필터의 결과와 sql 쿼리 돌렸을때 리스트가 다릅니다]]></title>
		<link>https://www.cosmosfarm.com/threads/rss/document/63492</link>
		<description><![CDATA[<p><strong>1. 정확한 제품 또는 플러그인 이름</strong></p>

<p>KBoard </p>

<p> </p>

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

<p>업로드시 옵션 필드(옵션키 : cate01) 체크박스로 여러개를 선택하고 여러개 카테고리를 검색하기 위해 코드를 수정중입니다.</p>

<p>url 은 ?cate01=소설,시%2F에세이 이렇게 GET param으로 넘기고 cate01이 있을시 아래와 같이 kboard_list_where 필터가 적용되도록 하고있습니다.</p>

<p>db에서 SQL 쿼리문으로 동일하게 검색시 원하는 리스트로 결과가 나오지만</p>

<p>filter에 동일하게 쿼리문을 넣어도 결과가 상이하게 나옵니다.</p>

<p>total 값도 다르게 나옵니다.</p>

<pre>
<code class="language-php">add_filter('kboard_list_where', 'onego_kboard_list_where', 10, 3);
function onego_kboard_list_where($where, $board_id, $content_list)
{
	global $wpdb;
	if ($board_id == 9) {
		$cate01 = isset($_GET['cate01']) &amp;&amp; $_GET['cate01'] != '' ? urldecode($_GET['cate01']) : '';
		if ($cate01 != '') {
			$cate01_arr = explode(',', $cate01);
			$meta_key = 'cate01';
			$where = "`{$wpdb-&gt;prefix}kboard_board_content`.`board_id`='9' AND (`{$wpdb-&gt;prefix}kboard_board_content`.`status` IS NULL OR `{$wpdb-&gt;prefix}kboard_board_content`.`status`='' OR `{$wpdb-&gt;prefix}kboard_board_content`.`status`='pending_approval')";
			$where .= " AND (`option_key`='{$meta_key}')";
			$where .= " AND (";
			$cate = [];
			foreach ($cate01_arr as $arr) {
				array_push($cate, "`option_value` = '{$arr}'");
			}
			$where .= implode(' OR ', $cate);
			$where .= ")";
			$where .= " GROUP BY `{$wpdb-&gt;prefix}kboard_board_option`.`content_uid`";
		}
	}
	return $where;
}</code></pre>

<p> </p>

<pre>
<code>SELECT `wp_kboard_board_content`.`uid`
FROM `wp_kboard_board_content` LEFT JOIN `wp_kboard_board_option` ON `wp_kboard_board_content`.`uid`=`wp_kboard_board_option`.`content_uid`
WHERE `wp_kboard_board_content`.`board_id`='9' AND (`wp_kboard_board_content`.`status` IS NULL OR `wp_kboard_board_content`.`status`='' OR `wp_kboard_board_content`.`status`='pending_approval') AND (`option_key`='cate01' ) AND (`option_value` IN('시/에세이') ) GROUP BY `content_uid`
ORDER BY `wp_kboard_board_content`.`date` DESC</code></pre>

<p> </p>

<p>kboard_list_where 필터 통해서 간단한 옵션 키로 테스트해보아도 sql 쿼리문이랑 결과가 다 다르게 나오네요.. 이런적이 없었는데 해결방법 부탁드리겠습니다..</p>

<p> </p>

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

<p> </p>

<p> </p>

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

<p> </p>

<p> </p>]]></description>
		<copyright>Copyright 2026, 코스모스팜</copyright>
				<item>
			<title><![CDATA[안녕하세요~^^

맨 아래에 있는 SQL문은 코드상으로는

문제가 되어 보이진 않습니다.

 

필터를 사용...]]></title>
			<link>https://www.cosmosfarm.com/threads/document/63532</link>
			<description><![CDATA[<p>안녕하세요~^^</p>

<p>맨 아래에 있는 SQL문은 코드상으로는</p>

<p>문제가 되어 보이진 않습니다.</p>

<p> </p>

<p>필터를 사용했으나 맨 아래처럼 표시되지 않는다는 말씀이신가요?</p>

<p> </p>

<p>필터의 조건문 내에 아래처럼</p>

<p>출력 후 exit를 동작하여</p>

<p>조건문이 동작하는지 먼저 확인해보시겠어요?</p>

<pre>
<code>print_r($where);
exit;</code></pre>

<p> </p>

<p>조건문이 문제이거나 혹은 필터가 다른 곳에서도 사용되고 있다면</p>

<p>문제가 되고 있을 수도 있습니다.</p>

<p> </p>

<p>필터의 실행 순서를 99로 하여 나중에 실행되도록 변경해보시겠어요?</p>

<pre>
<code>add_filter('kboard_list_where', 'onego_kboard_list_where', 99, 3);
</code></pre>

<p>고맙습니다.</p>]]></description>
			<author>스레드봇</author>
			<pubDate>Tue, 07 Mar 2023 04:32:26 +0000</pubDate>
			<category>KBoard</category>
		</item>
			</channel>
</rss>