我有一个叫做Clipper的Wordpress主题,它的子主题是奉承者。
该主题使用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()。
任何建议都会很棒。谢谢!
发布于 2013-12-03 19:20:48
从查询帖子中删除元查询。只需将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。
https://stackoverflow.com/questions/20160099
复制相似问题