2014-02-08 2 views
0

Я использую следующее, чтобы получить данные о продуктах Wordpress Woocommerce. Я выводил данные о продукте в json.Получить URL-адрес изображения Wordpress не работает

<?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(). Для этого требуется идентификатор требуемого приложения, которое вы можете использовать с помощью функции get_post_thumbnail_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 Codex:

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

Смежные вопросы