我有一个名为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()。
任何建议都会很棒。谢谢!
答案 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。