我遇到了问题,我写了这样的查询
$query = "SELECT DISTINCT wp_posts.* FROM wp_posts, wp_postmeta WHERE wp_posts.ID = wp_postmeta.post_id";
当我直接在我的数据库中运行它时,没有问题,它可以工作并从wp_posts表中选择自定义行,但我无法在我的代码中运行它,代码显示没有结果
global $wpdb;
$query = $wpdb->get_results($query);
$query->the_post();
the_title();
有什么问题?
答案 0 :(得分:1)
当您使用$ wpdb-> get_results()时,您将获得返回的行数组。你没有得到真正的wordpress post对象,所以你不能使用the_post()。 see here for get_results
如果您想查询我建议使用query_posts()或WP_Query的帖子。它看起来像这样:
// The Query
query_posts( $args );
// The Loop
while ( have_posts() ) : the_post();
echo '<li>';
the_title();
echo '</li>';
endwhile;
答案 1 :(得分:0)
您拥有的变量$query
包含一系列结果。在其上print_r()
查看其值。
另一方面,您使用$query->the_post();
和the_title();
,只能在wordpress loop内使用。
解决方案:
#after your query:
foreach($query as $result){
echo get_the_title($result->ID) . '<br />';
}