2017-05-02 17 views
1

私は、ほぼ同じ価格でwoocommerce製品を表示しようとしています。例えばのために :現在の製品の通常価格$ 1000を価格設定なしのwoocommerce製品を除外

で、価格と他のいくつかの製品が

  1. 製品1です - $ 1001
  2. product2 - $ 1006
  3. product3 - $ 996
  4. product4 - $ 999
  5. プロダクト5 - $ 1003
  6. プロダクト6 - $ 1001
  7. product7 - $ 1005
  8. product8 - $ 1010
  9. product9 - $ 998
  10. product10 - $ 990

今、私は、彼らが製品1,6だろうな価格で4つの最寄りの製品を表示すると仮定した場合には、上記の私には少し難しいように見えた4,9

ので私は

  • 2のプロを取得しようとしました価格を上回る$ 1000ここで

との価格よりも大きい$ 1000 &

  • 2つの製品を持つダクトは、私が

    $args = array(
           'post_type'=>'product', 
           'posts_per_page'=>2, 
           'order' => 'DESC', 
           'orderby' => 'meta_value', 
           'meta_key' => '_price', 
           'meta_query' => array(
               array(
               'key' => '_price', 
               'value' => 1000, 
               'compare' => '<', 
               'type' => 'NUMERIC' 
              ), 
              ) 
          ); 
    

    が、私はそれをしてくれ2つの最寄りの生成物を与える必要がありますねみましたWPクエリの引数です価格は1000未満

    しかし、それは私に価格が設定されていない製品を提供している..価格設定なしの製品を除外したいので..

    事前

  • +0

    add relation => 'AND'設定と価格設定のための配列 – RST

    +0

    @RSTお返事ありがとうございます。 – user3852040

    答えて

    1

    のおかげであなたは価格が0より高いかどうかを確認するには1を追加できるようにするには、複数のメタクエリを使用することができます。

    $args = array(
           'post_type'=>'product', 
           'posts_per_page'=>2, 
           'order' => 'DESC', 
           'orderby' => 'meta_value', 
           'meta_key' => '_price', 
           'meta_query' => array(
               array(
               'key' => '_price', 
               'value' => 1000, 
               'compare' => '<', 
               'type' => 'NUMERIC' 
              ), 
               array(
               'key' => '_price', 
               'value' => 0, 
               'compare' => '>', 
               'type' => 'NUMERIC' 
              ) 
              ) 
          ); 
    

    あなたのように、関係のパラメータを設定する必要はありませんデフォルトでは「AND」に設定されています。

    +0

    ねえ、ありがとうございます。このコードを試しましたが、間違った結果を探していました場所は、そう働いていないと思った。私は悪い...あなたは、最も近い価格で製品を取り出す基本的な問題について助けてくれますか?あなたから与えられたコードは、そのようには動作しません。 – user3852040

    +0

    たとえば、5つの製品をフェッチすることを意味します。より高いと低いの両方? – berend

    +0

    それが可能な場合、またはatleast highher ..もし2つの異なるクエリを実行して両方を別々に取得することができます – user3852040

    関連する問題