按‘标题’或‘自定义域’排序

时间:2012-08-01 作者:Gilipe

我有一个问题,我就是想不起来。让我直接跳进去:

基本上我有一个网站,有4个订单选项;

-名称升序名称降序价格升序价格降序

在我解决了一些问题后,按“标题”订购就很容易了。基本上就是这么做的。。

<?php
    $order = isset($_GET[\'order\']) ? $_GET[\'order\'] : "ASC";
    $sort_by_title = isset($_GET[\'sort\']) ? $_GET[\'sort\'] : "title";
?>
那么

<?php
    $args["orderby"] = $sort_by_title;
    $args["order"] = $order;
?>
最后

<a id="name-ascending" href="?order=ASC">Name Ascending</a>
<a id="name-descending" href="?order=DESC">Name Descending</a>
现在,价格字段是一个自定义字段,如果替换

$args["orderby"] = $sort_by_title;
使用

$args["orderby"] = $custom_field_name;
它会按价格排序,没有问题。问题是如何找出用户点击的内容,并确定现在应该订购什么。

如果需要,我的完整$args是

$args = array(\'post_type\' => \'model-pricing\', \'posts_per_page\' => 5, \'meta_key\' => \'Community\', \'meta_value\' => $community_choice, \'paged\' => $paged);
    $args["orderby"] = $sort_by_title;
    $args["order"] = $order;
我真的很感谢大家对我的帮助,甚至是一些关于我如何解决这个问题的有见地的想法。谢谢

1 个回复
SO网友:pcarvalho

我假设它是按标题排序的$_GET[\'sort_title\'] 或按自定义字段(但不一定)和您传递的$_GET[\'sort_price\']. 如果两者都不存在,“标题”是默认值。

记住这一点,检查两个值

 if( isset($_GET[\'sort_title\']) ) { 
     $sort_by =  $_GET[\'sort_title\']; 
     //orderby can accept multiple values
 }
 elseif ( isset($_GET[\'sort_price\']) ) { 
     $sort_by = \'meta_value\';
     $args["meta_key"] = \'price\';
 } 
 else { $sort_by = "title";
如果是这样,请不要忘记更改查询以允许对其他自定义字段进行限制。

  args[\'meta_query\'] = array(
    array(
        \'key\' => \'Community\',
        \'value\' => \'$community_choice\'
    )
)
meaning: 我把“头衔”放在首位。然后,如果未提供,请最后检查“价格”,如果两者都未设置,则默认为标题

结束

相关推荐

Order posts by date

我是一个女孩,请原谅我的英语。也许这很容易,但我却不知道这一点。但问题是我想在主页上输出最近3天的帖子。像这样:30/03/12 职位1职位2岗位329/03/12 职位1职位2岗位328/03/12 职位1职位2岗位3我试过:$loopday = \'\'; if ( have_posts() ) : while ( have_posts() ) : the_post(); if ($loopday !== get_the_time(\'D M j\')