2014-02-08 49 views
0

我使用以下來獲取Wordpress Woocommerce產品的數據。我用json輸出產品數據。獲取WordPress的圖片URL不起作用

<?php 
$args = array('post_type' => 'product', 'posts_per_page' => 200, 'product_cat' => 'clothes'); 
     $loop = new WP_Query($args); 


    $send_array = array(); 
     while ($loop->have_posts()) : $loop->the_post(); 
     global $product; 

    $send_array[] = array(

     'id' => get_the_ID(), 
     'title' => get_the_title(), 
     'content' => get_the_content(), 
     'regular_price' => get_post_meta(get_the_ID(), '_regular_price', true), 
     'image' =>wp_get_attachment_image_src(), 
     'sale_price'=> get_post_meta(get_the_ID(), '_sale_price', true) 
    ); 

    endwhile; 

    wp_reset_query(); 
     ob_clean(); 
     echo json_encode($send_array); 
     exit(); 

    ?> 

此代碼正常工作並正確輸出數據。但image似乎並不奏效。

我想要獲取每個產品的圖像url。在上面的代碼中,我嘗試了wp_get_attachment_image_src(),但沒有運氣。

如何使用上面的代碼獲取每個產品的圖像url,並將其作爲數組中的image鍵的值。

回答

1

問題是,你不能正確調用wp_get_attachment_image_src()函數。 它需要所需附件的ID,您可以使用get_post_thumbnail_id()函數獲得該附件的ID。

但是wp_get_attachment_image_src()返回包含附件文件的圖像屬性"url","width""height"的數組。

我建議使用wp_get_attachment url()函數,它只返回一個URL。

Finnaly,此代碼應工作的優良您:

$send_array[] = array(

    'id' => get_the_ID(), 
    'title' => get_the_title(), 
    'content' => get_the_content(), 
    'regular_price' => get_post_meta(get_the_ID(), '_regular_price', true), 
    'image' => wp_get_attachment_url(get_post_thumbnail_id(get_the_ID())), 
    'sale_price'=> get_post_meta(get_the_ID(), '_sale_price', true) 
); 

更多關於WordPress的抄本此功能的信息:

http://codex.wordpress.org/Function_Reference/get_post_thumbnail_id

http://codex.wordpress.org/Function_Reference/wp_get_attachment_image_src

http://codex.wordpress.org/Function_Reference/wp_get_attachment_url

+0

工作就像一個魅力。這些鏈接也非常有幫助。非常感謝。 – Tester