mysql - WordPress Database Posts Table query

admin2025-06-06  2

This works if I replace $wpdb->posts with the literal table name in the database, but not if I try to switch it over to $wpdb->posts. I thought this is used to solve the databases being named wpgh, wpbs, wphh, or any other combination of wp and some characters.

$results = $wpdb->get_results( 'SELECT * FROM $wpdb->posts WHERE post_type = "page" OR post_type = "post" AND post_status = "publish"');

Am I doing something wrong or is there another way to get the posts table?

This works if I replace $wpdb->posts with the literal table name in the database, but not if I try to switch it over to $wpdb->posts. I thought this is used to solve the databases being named wpgh, wpbs, wphh, or any other combination of wp and some characters.

$results = $wpdb->get_results( 'SELECT * FROM $wpdb->posts WHERE post_type = "page" OR post_type = "post" AND post_status = "publish"');

Am I doing something wrong or is there another way to get the posts table?

Share Improve this question edited Nov 24, 2018 at 7:24 butlerblog 5,1413 gold badges28 silver badges44 bronze badges asked Dec 11, 2016 at 18:22 Trevor ThorpeTrevor Thorpe 11 bronze badge 1
  • Your issue was single quotes, PHP variables only work inline inside double-quoted strings. – Rarst Commented Dec 11, 2016 at 19:47
Add a comment  | 

1 Answer 1

Reset to default 0

Turns out this works.

global $wpdb;
    $postsTable = $wpdb->posts;
    $results = $wpdb->get_results( 'SELECT * FROM '.$postsTable.' WHERE post_type = "page" OR post_type = "post" AND post_status = "publish"');
转载请注明原文地址:http://conceptsofalgorithm.com/Algorithm/1749154223a316827.html

最新回复(0)