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()を使用すると、返される行の配列を取得します。実際のワードプレスの投稿オブジェクトを取得していないため、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();内でのみ使用できます。

解決:

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