2012-01-09 75 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 “ ); ?>
相关问题