your programing

Transofrm sql 쿼리를 사용하여 wordpress 쿼리를 새 wp_query로 실행합니다.

lovepro 2023. 3. 13. 23:31
반응형

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

반응형