글 머리 기호를 함수의 query-> set에 전달하려고하고 함수가 게시물을 반환합니다.ID를 함수의 pre_get_posts 쿼리에 전달하십시오.
add_action('pre_get_posts', 'query_booked_posts');
function query_booked_posts($query) {
if ($condition) { //the condition
if (is_home() && $query->is_main_query())
$results = $wpdb->get_col($wpdb->prepare("SELECT booked_id FROM $wpdb->userbooking WHERE userid = %d",$current_user_id));
foreach($results as $result){
$results_separated = $result.',';
}
$query->set ('post__in', array($results_separated)); // pass results (post ids) to post__in
return $query;
}
}
이 후 함수는 아무 것도 반환하지 않습니다.
$query->set ('post__in', array(45,121));
을 입력하면 쿼리가 id 45 및 id 121의 게시물을 반환하므로 쿼리가 올바르게 작동합니다.
하지만 $results_separated
은 45,121,132와 같은 게시 ID를 쿼리에 전달하고 $query->set ('post__in', array($results_separated));
은 올바르게 작동하게 만들려고합니다. 어떻게해야합니까?
미코노미 씨, 솔루션을 사용해 보았지만 아무 것도 반환하지 않았습니다. ( – Jason
@Jason, foreach 바로 전에'var_dump ($ results) '를 해보고 실제로 결과를 얻고 있는지 확인하십시오. 귀하의 쿼리 ... – MikO
var_dump ($ 결과) 후 : array (3) {[0] => string (3) "121"[1] => string (2) "89"[2] => 문자열 (2) "69"} – Jason