Wordpress Query_Posts组合

时间:2013-11-23 08:09:21

标签: wordpress-plugin wordpress-theming wordpress

我有一个名为Clipper的Wordpress主题,Flatter作为子主题。

主题使用query_output在主页中输出结果。我的意图是按自定义字段排序'clr_up_vote'。但是,这导致输出仅减少到包含'clr_up_vote'数据的帖子并隐藏其余部分。

我最初开始通过在index.php中使用两个查询进行修复,

$ordered_posts =   query_posts(array(
    'post_type' => APP_POST_TYPE
    , 'ignore_sticky_posts' => 1
    , 'paged' => $page
    , 'posts_per_page' => 10
    , 'offset' => $offset
    ,'meta_key' => 'clpr_votes_up',
    'orderby' => 'meta_value',
    'order' => 'DESC',
         'meta_query' => array(
        array(
        'key' => 'clpr_votes_up',
        'meta-value' => $value,
        'value' => 1,
        'compare' => '>='
        ),
        array(
                    'key' => 'clpr_votes_down',
                    'value' => '',
                    'compare' => 'LIKE'
            )
    )


));
get_template_part('loop', 'coupon'); 

$unordered_posts =   query_posts(array(
    'post_type' => APP_POST_TYPE
    , 'ignore_sticky_posts' => 0
    , 'paged' => $page 
    , 'posts_per_page' => 10-count($ordered_posts)
    , 'offset' => $offset
    , 'post__not_in' => $post_ids
));

get_template_part('loop', 'coupon'); 

但现在分页似乎不起作用。我尝试使用WP_Query,但主题只接受query_posts()。

任何建议都会很棒。谢谢!

1 个答案:

答案 0 :(得分:0)

从查询帖子中删除元查询。只需将orderby设置为元值,并将元键设置为clpr_votes_up。

$ordered_posts =   query_posts(array(
    'post_type' => APP_POST_TYPE
    , 'ignore_sticky_posts' => 1
    , 'paged' => $page
    , 'posts_per_page' => 10
    , 'offset' => $offset
    ,'meta_key' => 'clpr_votes_up',
    'orderby' => 'meta_value',
    'order' => 'DESC'
));

如果您想要所有帖子,请从查询中删除posts_per_page。