如何按自定义字段值排序?

时间:2012-08-16 作者:Nisha_at_Behance

我使用这些代码对评论最多、浏览最多的帖子进行排序

<?php $params = $_GET;
unset($params[\'orderby\']);
unset($params[\'order\']);
unset($params[\'v_orderby\']);
unset($params[\'v_sortby\']);
$url = $_SERVER["HTTP_HOST"].$_SERVER["REQUEST_URI"];
$url = strtok($url, \'?\');
$url =$url.\'?\'.http_build_query($params);
?>
 <ul id="sort">
<li <?php if($active == "date"): ?> class="active"<? endif ?>><a href="http://<?php echo   
$url ?>">Most Rated</a></li>
<li <?php if($active == "comment"): ?> class="active"<? endif ?>><a  href="http://<?php   echo $url ?>&orderby=comment_count&order=desc">Most commented </a></li>
<li <?php if($active == "views"): ?> class="active"<? endif ?>><a href="http://<?php echo $url ?>&v_sortby=views&v_orderby=desc">Most viewed </a></li>
</ul>
现在我想对自定义字段“评级”进行排序,因为评级最高的是自定义字段的代码。

 <?php
//grab the rating value
$rating = get_post_meta($post->ID, \'rating\', true);

//prints star image
for ($i=1; $i<=$rating; $i++){
    echo \'<img src="/images/star.png"/>\';  
}

//prints unstar image
for ($i=$rating; $i<10; $i++){
    echo \'<img src="/images/unstar.png"/>\';
}
?>
为此,我使用了此代码,但它不起作用。

<a href="http://<?php echo $url ?>&orderby=rating&order=desc">Most Rated</a>  

1 个回复
SO网友:xiarnousx

根据我从您的问题中了解到的情况,您希望按评分最高的自定义字段对结果进行排序\'rating\' 假设为数字。为了做到这一点,你需要写以下内容wp_query 并在您的请求中正确处理它。但是,查询的最终结果应如下所示:

$args = array(
      \'meta_key\' => \'rating\',
      \'order\'   =>  \'DESC\',
      \'orderby\' => \'meta_value_num\'
);
$query = new WP_Query($args);

结束

相关推荐

Sorting editor screen items

当新用户登录到我们的网站时,他们必须组织许多屏幕选项,以便开始创建自定义字段和编辑网站。我想强制按特定顺序显示这些内容。有没有办法在编辑屏幕上强制排序?