2012-01-09 11 views
1

カスタムフィールドIDで投稿を取得し、カスタムフィールド値でソートし、このフィールドが存在する場合は別のカスタムフィールドで取得する必要があります。私はカスタム選択クエリを使用する必要があると思う。私の質問を見てください:問題は、このクエリが同じ投稿を5回返すということです。管理パネルでは、1ページに20件の投稿を作成しました。多分誰かが独自の解決策を持っているでしょうか?ありがとう。Wordpress:カスタム選択クエリで投稿を表示

$wp_query->request = "SELECT * FROM $wpdb->posts 
LEFT JOIN $wpdb->postmeta ON($wpdb->posts.ID = $wpdb->postmeta.post_id) 
LEFT JOIN $wpdb->term_relationships ON($wpdb->posts.ID = $wpdb->term_relationships.object_id) 
LEFT JOIN $wpdb->term_taxonomy ON($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id) 
LEFT JOIN $wpdb->terms ON($wpdb->terms.term_id = $wpdb->term_taxonomy.term_id) 
WHERE $wpdb->terms.slug = 'categoryname' 
AND $wpdb->term_taxonomy.taxonomy = 'category' 
AND $wpdb->posts.post_status = 'publish' 
AND $wpdb->posts.post_type = 'post' 
ORDER BY $wpdb->posts.post_date DESC"; 
$pageposts = $wpdb->get_results($wp_query->request, OBJECT); 

答えて

2
$customSelect = new WP_Query(array(

    'post_type'  => 'post',  
    'posts_per_page' => 10, 
    'taxonomy'  => 'category', 
    'order'   => 'DESC', 
    'meta_key'  => 'your custom field', 
    'orderby'   => 'meta_value' 

これは、あなたが達成しようとしてどのような方法オフおそらく、私は私の頭のラウンドを得ることができない唯一のビットは、メタキーが変数か何かを使用して存在しているかどうかをテストする方法です。

とにかく幸運あなたは "$ wp_query->要求" を使用する理由

+0

meta_keyのmeta_valueを注文したいので、私はもう一つmeta_keyが必要です。それが存在する場合は別のmeta_keyをチェックする必要があります。 – andys

+0

かなり微妙に聞こえますが、ここでは少量で答えが見つかります。 http://www.wpquestions.com/ – Joshc

+0

+1:古い投稿ですが、メタタグによっていくつかの投稿を注文するカスタムSQLクエリを書く必要がなくなりました。ありがとう! –

0

、この変数は新しいものを設定していない、最後のクエリの結果を取得するためである...

はちょうど

$my_custom_sql = "SELECT * FROM $wpdb->posts 
LEFT JOIN $wpdb->postmeta ON($wpdb->posts.ID = $wpdb->postmeta.post_id) 
LEFT JOIN $wpdb->term_relationships ON($wpdb->posts.ID = $wpdb->term_relationships.object_id) 
LEFT JOIN $wpdb->term_taxonomy ON($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id) 
LEFT JOIN $wpdb->terms ON($wpdb->terms.term_id = $wpdb->term_taxonomy.term_id) 
WHERE $wpdb->terms.slug = 'categoryname' 
AND $wpdb->term_taxonomy.taxonomy = 'category' 
AND $wpdb->posts.post_status = 'publish' 
AND $wpdb->posts.post_type = 'post' 
ORDER BY $wpdb->posts.post_date DESC"; 
$pageposts = $wpdb->get_results($my_custom_sql, OBJECT); 
を試してみてください
-1
  1. SELECT this-

    get_results( 」を試してみてください* $ wpdb->ポスト 左から$ wpdb-を登録しよう> ($ wpdb-> posts.ID = $ wpdb-> term_relationships.object_id)ON term_relationships LEFT ($ wpdb-> term_relationships ON $ wpdb-> term_taxonomyを登録しよう。 term_taxonomy_id = $ wpdb-> term_taxonomy.term_taxonomy_id) $ wpdb-> posts.post_status = 'を公開' AND $ wpdb-> term_taxonomy.taxonomy = 'カテゴリ' と$ wpdb-> term_taxonomy.term_id = 3 ORDER BY post_date ASC " ); ?>
関連する問題