-1

headwaythemes を使用して Web サイトを作成しています。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 を使用する場合は、3 つのテキスト フィールドに値が入力されているかどうかをテストする追加のチェックを行うこともできます。

既に述べたように、クエリ引数を変更する必要があります。また、現在のクエリ引数を条件ステートメントに配置する必要があります。英語では次のようになります。

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 に答える