-1

我正在使用 headwaythemes 创建我的网站。我喜欢自定义 ORDER-BY。

这是我在文件中找到的代码。

'order-by' => array(
    'type' => 'select',
    'name' => 'order-by',
    'label' => 'Order By',
    'tooltip' => '',
'options' => array(
    'date' => 'Date',
    'title' => 'Title',
    'rand' => 'Random',
    'comment_count' => 'Comment Count',
    'ID' => 'ID',
    'meta_value_num' => 'Custom' // my code
    )
),

我添加了这一行,它显示在选择框中。但是没有任何事情发生,因为http://codex.wordpress.org/Class_Reference/WP_Query缺少'meta_key=keyname'这也必须存在。

我如何让它呈现?

我试过了array( oderby => meta_value_num, meta_key => images_likes ) => 'Custom' // my code,但这也不起作用。

有人能告诉我如何添加 meta_key 吗?

4

1 回答 1

0

我不熟悉您使用的主题,但这应该是一般方法(希望您已经在子主题中完成了自定义:-)

您将需要更改查询参数。我想你在这里有几个选择

  • 为元键、元值和比较运算符创建额外的文本字段

  • 硬编码meta_query如果不需要它是动态的

对于这两个选项,您首先要检查是否orderby=meta_value_num选择了该选项。我不知道这是简单的复选框还是下拉菜单,但是您应该能够编写条件语句来检查是否选择了此选项。

如果您使用上面的选项要点 1,您还可以进行额外检查以测试您是否在三个文本字段中输入了值。

正如我已经说过的,您将需要更改查询参数,并且您还需要将当前查询参数放入您的条件语句中,如下所示:

if( orderby=meta_value_num is selected plus additional check if bullet point 1 option) {

    $args = array(
        'post_type'  => 'product',
        'orderby' => 'OPTION KEY FOR THIS',
        'meta_key' => 'color',
        'meta_query' => array(
            array(
                 'key'     => 'color',
                 'value'   => 'blue',
            ),
        ),
    );

}else{

    //DEFAULT THEME QUERY ARGUMENTS

}
于 2015-01-12T06:14:45.870 回答