web-dev-qa-db-ja.com

カスタム属性を持つすべての商品を入手する

特定の属性(私の場合は "demo")を持つすべての商品を取得するためにカスタムクエリを実行する必要があります。

a:5:{s:4:"demo";
a:6:{s:4:"name";
    s:4:"DEMO";
    s:5:"value";
    s:366:"LINK TO DEMO";
    s:8:"position";
    s:1:"0";
    s:10:"is_visible";
    i:0;
    s:12:"is_variation";
    i:0;
    s:11:"is_taxonomy";
    i:0;
}

}

私はどのようにして製品を得るために$ argsをするのかわからない。 $ argsをこのようにしたいのですが。

    $args = array ( 
         'meta_query' => array( 
             array( 
              'key' => 'meta_value', 
              'value' => 'demo', 
              'compare' => 'LIKE', ), 
           ), 
   );

ありがとうございます。

4
Cristian B.

[OK]を私はすでに持っています!ゆうふう!

どうもありがとうございます。

私はこれを持っています:

$args = array ( 
     'post_type'  => 'product',
     'posts_per_page'  => -1,
     'meta_query' => array( 
         array( 
          'value' => 'demo', 
          'compare' => 'like'
         ), 
       ), 

;

これで私のために最低でも

どうもどうも!!

宜しくお願いします!

2
Cristian B.

こんな感じで

$args = array(
    "post_type" => "product",
    "meta_query" => array(
        array(
            "key"     => "demo",
            "value" => "abc",
            "compare" => "EXISTS",
        ),
    ),
);
$query = new WP_Query( $args );
1
mmm

あなたはkeymeta_valueとして書いた。それはあなたのメタネームです。カスタムフィールドまたはメタに付けた名前。その後、次のクエリを使用してください。

$args = array ( 
         'post_type'  => 'your-post-type',
         'posts_per_page'  => -1,
         'meta_query' => array( 
             array( 
              'key' => 'demo', 
              'value' => '',
              'compare' => '!='
             ), 
           ), 
   );

デフォルトでは、compare=に設定されています。

1
Karun

私はこれが古いことを知っています、しかしまっすぐなSQL、これが私の解決策です:

商品のすべてのメタデータを取得します。

SELECT meta_key, meta_value FROM wp_postmeta WHERE wp_postmeta.post_id = 626

特定のメタデータを含む商品を入手する

SELECT p.id, p.post_title, m.meta_key, m.meta_value FROM wp_posts p 
INNER JOIN wp_postmeta m ON p.id=m.post_id AND m.meta_key='_auction_dates_to' 

特定の製品のメタデータを取得する

AND p.id=626

特定のメタ値を取得するために追加

AND m.meta_value='today'
0
ssaltman