반응형
Wordpress에서의 커스텀쿼리 실행에 문제가 있는 경우
좋아, 몇 시간 동안 이걸 쳐다봤는데 뭐가 잘못됐는지 모르겠어.너희 중 한 명이 내 실수를 봤으면 좋겠어.select 문을 복사하여 PHPMYAdmin에서 실행하였습니다.그곳에서는 정상적으로 실행되지만 Wordpress에서는 결과가 반환되지 않습니다.2개의 변수가 올바르게 입력되어 있는 것도 확인했습니다.
$user = wp_get_current_user();
$terms = wp_get_object_terms($user->ID, 'departments');
$term = $terms[0]->term_id;
$results = $wpdb->get_results(
$wpdb->prepare(
"SELECT post_title, post_content
FROM wp_posts
INNER JOIN wp_postmeta ON wp_posts.id = wp_postmeta.post_id
INNER JOIN wp_term_relationships ON wp_posts.id = wp_term_relationships.object_id
WHERE post_type = 'events'
AND meta_key = 'event_date'
AND meta_value = %s
AND term_taxonomy_id = %s"),array($date,$term));
var_dump를 $results로 하면 NULL이 됩니다.
준비 문장에 오류가 있습니다... array($date,$term)
준비 기능 안에 있어야 합니다.
예
// Bad- args outside of prepare
$results = $wpdb->get_results($wpdb->prepare($sql), $args);
// Good- args inside prepare
$results = $wpdb->get_results($wpdb->prepare($sql, $args));
관련 문서
- https://developer.wordpress.org/reference/classes/wpdb/prepare/
- https://developer.wordpress.org/reference/classes/wpdb/get_results/
고객님의 코드에 맞는 솔루션
$user = wp_get_current_user();
$terms = wp_get_object_terms($user->ID, 'departments');
$term = $terms[0]->term_id;
$results = $wpdb->get_results(
$wpdb->prepare(
"SELECT post_title, post_content
FROM wp_posts
INNER JOIN wp_postmeta ON wp_posts.id = wp_postmeta.post_id
INNER JOIN wp_term_relationships ON wp_posts.id = wp_term_relationships.object_id
WHERE post_type = 'events'
AND meta_key = 'event_date'
AND meta_value = %s
AND term_taxonomy_id = %s",
array($date,$term)
));
언급URL : https://stackoverflow.com/questions/65734254/having-trouble-running-a-custom-query-in-wordpress
반응형
'programing' 카테고리의 다른 글
암호화로 보호된 토큰 생성 (0) | 2023.01.24 |
---|---|
판다의 발생을 세는 가장 효율적인 방법은 무엇일까요? (0) | 2023.01.24 |
클래스의 최종 정적 필드 값은 어떻게 참조할 수 있습니까? (0) | 2023.01.24 |
str_replace를 사용하여 첫 번째 일치 시에만 작동합니까? (0) | 2023.01.24 |
Ubuntu의 MySQL JDBC jar 파일은 어디에 있습니까? (0) | 2023.01.14 |