2016-07-27 14 views
0

Ich verwende diese Funktion, um alle Produkte als ID-Namen-Paare zu erhalten, um Daten in ein Auswahlfeld zu füllen.WooCommerce Holen Sie sich alle Produkte als ID Name Paar

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; 
    } 

Gibt es einen besseren Weg, dies zu tun? (Alle Standardfunktion?)

Antwort

0

Nein, Sie müssen dies manuell tun. oder Sie können dies mit benutzerdefinierten Abfrage

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; 
    } 

dies ist schneller als Ihre.

+0

Warnung: Fehlendes Argument 2 für wpdb :: prepare(), Hinweis: wpdb :: prepare wurde falsch aufgerufen –

+0

natürlich müssen Sie "wp_posts" anstelle von {$ wpdb-> prefix} Beiträge aufrufen –

Verwandte Themen