我无法在wordpress中执行自定义查询

时间:2013-02-20 07:38:37

标签: php wordpress wpdb

我遇到了问题,我写了这样的查询

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

有什么问题?

2 个答案:

答案 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 />';
}