`$row` doesn't look like you think it does. `$wpdb->get_results` will by default return an array of *objects*. Your code-- `'post_title' => $row['Title']`-- treats an object like an array and should generate a Fatal Error, which you'd see if you had [debugging enabled][1]. > Fatal error: Cannot use object of type stdClass as array in ... You need object syntax. Try (using a Core table): $rows = $wpdb->get_results( "SELECT * FROM wp_posts"); foreach ($rows as $row) { // echo $row['post_author']; // doesn't work echo $row->post_author; // works echo '<br>'; } [1]: http://wordpress.stackexchange.com/a/95983/21376