2012-01-09 114 views
1

我需要通過自定義類別ID獲取帖子,按自定義字段值排序,如果此字段存在,則使用另一個自定義字段排序。我想我需要使用自定義選擇查詢。看看我的查詢:問題是這個查詢返回相同的帖子5次...在管理面板中,我每頁發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' 

這可能是遙遠你想要達到的目的,唯一的一點,我不能讓我的頭一輪是如何測試,如果使用一個變量或東西存在meta鍵。

不管怎麼說好運氣

+0

感謝您的回覆,我需要一個meta_key,因爲我想要meta_key的meta_value,我需要檢查另一個meta_key是否存在。 – andys 2012-01-10 10:01:05

+0

聽起來很棘手,確定你會在這裏找到一個答案少量。 http://www.wpquestions.com/ – Joshc 2012-01-10 16:00:19

+0

+1:舊的帖子,但剛剛救了我不得不寫一個自定義的SQL查詢來定購一些元標記的帖子。謝謝! – 2012-02-14 18:38:08

0

爲什麼你用 「$ wp_query->請求」,這個變量是獲取最後的查詢結果,而不是設置新的...

只是嘗試

$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. 嘗試這個 -

    get_results( 「 SELECT * FROM $ wpdb->帖子 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) 其中$ wpdb-> posts.post_status = '發佈' 和$ wpdb-> term_taxonomy.taxonomy = '類' 和$ wpdb-> term_taxonomy.term_id = 3 ORDER BY post_date ASC 「 ); ?>
相關問題