반응형
Transofrm sql 쿼리를 사용하여 wordpress 쿼리를 새 wp_query로 실행합니다.
SQL 쿼리를 워드프레스 쿼리로 변환하려고 하는데 그 방법을 이해하지 못했습니다.
변환하려는 쿼리new wp_query
$query = " SELECT SQL_CALC_FOUND_ROWS distinct wp_posts.ID
FROM wp_posts
INNER JOIN wp_postmeta
ON ( wp_posts.id = wp_postmeta.post_id )
INNER JOIN wp_postmeta AS mt1
ON ( wp_posts.id = mt1.post_id )
WHERE 1 = 1
AND wp_posts.id NOT IN ( 0 )
AND wp_posts.post_type = 'topic'
AND ( wp_posts.post_status = 'publish'
OR wp_posts.post_status = 'closed'
OR wp_posts.post_status = 'reported' )
AND ( wp_postmeta.meta_key = '_bbp_last_active_time')
GROUP BY wp_posts.id
ORDER BY wp_postmeta.meta_value DESC
LIMIT 0, 10
";
$topics = $wpdb->get_results($query, OBJECT);
사용할 수 있도록
while($topics->have_posts()) : $topics->the_post(); ?>
좋아하다
$args = array(); // how do I convert to this.
$topics = new WP_query($args);
시험:
$wpq = new WP_Query();
$wpq->parse_query($query);
$posts = $wpq->get_posts();
또는 표준 WP_Query 함수를 사용하려면:
$wpq = new WP_Query($query);
Bobdye의 용액을 써봤는데 효과가 없더군요.유일한 방법은 루프를 설정하는 것으로 알고 있는 한the_title()
,$post->ID
다음과 같이 작업합니다.
global $post;
$sql_results = $wpdb->get_results( $sql_query, OBJECT);
if ($sql_results) {
foreach ($sql_results as $post) {
setup_postdata($post);
// You're in the loop now. You can access all the $post objects
// and functions like in any other wp loop.
// example: the_title();
}
wp_reset_postdata();
}
이것의 문제는 페이지 번호부여입니다.하지만 이 답변으로 문제가 깔끔하게 해결된다고 생각합니다.https://wordpress.stackexchange.com/questions/21626/pagination-with-custom-sql-query#28717
언급URL : https://stackoverflow.com/questions/28650898/transofrm-sql-query-to-wordpress-query-with-new-wp-query
반응형
'your programing' 카테고리의 다른 글
angularjs 텍스트 영역 문자 카운터 (0) | 2023.03.13 |
---|---|
WooCommerce 변수 제품의 리셋 변동 버튼을 제거합니다. (0) | 2023.03.13 |
이것이 redux를 사용하여 항목을 삭제하는 올바른 방법입니까? (0) | 2023.03.13 |
Wordpress EC2의 Permalinks (0) | 2023.03.13 |
json.net에 주요 방법이 있습니까? (0) | 2023.03.13 |