0

我有一个问题,我写一个这样的查询

$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();

问题是什么?

4

2 回答 2

1

当您使用 $wpdb->get_results() 时,您会得到一个返回行的数组。你没有得到实际的 wordpress 帖子对象,所以你不能使用 the_post()。请参阅此处获取 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;
于 2013-02-20T08:05:37.640 回答
0

$query您拥有的变量包含一组结果。print_r()对其进行操作以查看其值。

另一方面,您正在使用$query->the_post();并且the_title();只能在wordpress 循环中使用。

解决方案:

#after your query:
foreach($query as $result){
  echo get_the_title($result->ID) . '<br />';
}
于 2013-02-20T08:17:25.777 回答