2016-07-27 85 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

當然,您必須調用「wp_posts」而不是{$ wpdb-> prefix}帖子 –

相關問題