php - $wpdb returns duplicate posts -


i have created shortcode shows posts created after user last logged in. shortcode working fine, not sure why getting 7 duplicate posts. test created post named "sample article", , when echo out title of post, result.

sample article sample article sample article sample article sample article sample article sample article sample article

shortcode

function latest_posts_after_last_login( $atts ) {      global $wpdb, $current_user;      $atts = shortcode_atts( array( 'post_type' => ''), $atts, 'latest_posts_after_last_login' );      $post_type = $atts['post_type'];      $last_login = get_user_meta( $current_user->id, '_last_login_for_posts', true );      $querystr = "         select $wpdb->posts.*          $wpdb->posts, $wpdb->postmeta         $wpdb->posts.id = $wpdb->postmeta.post_id          , $wpdb->posts.post_status = 'publish'          , $wpdb->posts.post_type = '%s'          , $wpdb->posts.post_date > '%s'         order $wpdb->posts.post_date desc     ";      $prepare = $wpdb->prepare($querystr, array($post_type , $last_login));      $pageposts = $wpdb->get_results($prepare, object);      foreach ($pageposts $posts) {         echo $posts->post_title;     }  } add_shortcode( 'latest_posts_after_last_login', 'latest_posts_after_last_login' ); 

thanks in advance ...

nevermind, solved on own. while reading on wordpress codex $wpdb, saw if use object_k remove duplicates , solved problem.

if helps anyone, here working code:

function latest_posts_after_last_login( $atts ) {      global $wpdb, $current_user;      $atts = shortcode_atts( array( 'post_type' => ''), $atts, 'latest_posts_after_last_login' );      $post_type = $atts['post_type'];        $last_login = get_user_meta( $current_user->id, '_last_login_for_posts', true );      $querystr = "         select $wpdb->posts.*          $wpdb->posts, $wpdb->postmeta         $wpdb->posts.id = $wpdb->postmeta.post_id          , $wpdb->posts.post_status = 'publish'          , $wpdb->posts.post_type = '%s'          , $wpdb->posts.post_date > '%s'         order $wpdb->posts.post_date desc     ";      $prepare = $wpdb->prepare($querystr, array($post_type , $last_login));      $pageposts = $wpdb->get_results($prepare, object_k);       foreach ($pageposts $post) {         echo $post->post_title;     }  } add_shortcode( 'latest_posts_after_last_login', 'latest_posts_after_last_login' ); 

Comments

Popular posts from this blog

c# - Validate object ID from GET to POST -

node.js - Custom Model Validator SailsJS -

php - Find a regex to take part of Email -