2016-07-27 12 views
0

私はこの機能を使用してID名のペアとしてすべての商品を取得し、選択ボックスにデータを入力します。WooCommerce ID名のペアとしてすべての商品を取得

function get_product_list_as_key_name(){ 
        $args  = array('post_type' => 'product','posts_per_page' => -1); 
        $products = get_posts($args); 
        $products_list = array(); 
        if(!empty($products)){ 
         $i = 0; 
         foreach ($products as $value) { 
          $products_list[$i]['id'] = $value->ID; 
          $products_list[$i]['name'] = strlen($value->post_title) > 25 ? substr(strip_tags($value->post_title), 0, 25) . "..." : $value->post_title; 
          $i++; 
         } 
        } 
     return $products_list; 
    } 

これを行うに任意のより良い方法はありますか?(任意のデフォルトの機能?)

答えて

0

なし手動でこれを実行する必要がありません。またはカスタムクエリでこれを行うことができます

function get_product_list_as_key_name(){ 
     global $wpdb; 
     $query = "SELECT ID,post_title FROM {$wpdb->prefix}posts where post_type='product' AND post_status='publish'"; 
     $products_array = $wpdb->get_results($wpdb->prepare($query)); 
     return $products_array; 
    } 

これはあなたより速いです。

+0

警告:wpdb :: prepare()の引数2がありません 注意:wpdb :: prepareが誤って呼び出されました –

+0

of-course {$ wpdb-> prefix}の代わりに "wp_posts"を呼び出す必要があります –

関連する問題