2015-04-21 151 views
1

對於知道他們的WordPress的人的快速問題。獲取WooCommerce產品圖片標題

我使用以下代碼在產品頁面上顯示WC產品庫(按正確順序)。

有人可以快速指向我的方向包括圖像標題之間的<p>的?

global $product; 
$attachment_ids = $product->get_gallery_attachment_ids(); 

echo '<div class="flexslider"><ul class="slides">'; 
foreach($attachment_ids as $attachment_id) 
{ 
echo '<li>'; 
    echo "<img src=".$image_link = wp_get_attachment_url($attachment_id, 'large').">"; 
    echo '<p>'; 
    echo '</p>'; 
    echo '</li>'; 
} 
echo '</ul></div>'; 

回答

0

您可以使用wp_get_attachment_metadata。喜歡的東西:

$caption = wp_get_attachment_metadata($attachment_id)['image_meta']['caption']; 
+0

謝謝...但給我一個語法錯誤:「解析錯誤:語法錯誤,意想不到的 '[' 在/var/sites/t/website.co.uk/public_html/ wp-content/plugins/shortcode-exec -php/shortcode-exec-php-class.php(895):eval()'第10行代碼' –

+0

這不會工作,因爲'wp_get_attachment_metadata'會給[EXIF] (http://en.wikipedia.org/wiki/Exchangeable_image_file_format)標題不是您在後端輸入的標題。 –

2

這裏的方法去實現它:

首先下面的代碼添加到你的主題functions.php

function wp_get_attachment($attachment_id) { 

    $attachment = get_post($attachment_id); 
    return array(
     'alt' => get_post_meta($attachment->ID, '_wp_attachment_image_alt', true), 
     'caption' => $attachment->post_excerpt, 
     'description' => $attachment->post_content, 
     'href' => get_permalink($attachment->ID), 
     'src' => $attachment->guid, 
     'title' => $attachment->post_title 
    ); 
} 

之後,你可以使用它像:

$attachment_meta = wp_get_attachment($attachment_id); 
echo $attachment_meta['caption']; 

所以你的最終代碼是:

global $product; 
$attachment_ids = $product->get_gallery_attachment_ids(); 

echo '<div class="flexslider"><ul class="slides">'; 
foreach($attachment_ids as $attachment_id) 
{ 
    echo '<li>'; 
    echo "<img src=".$image_link = wp_get_attachment_url($attachment_id, 'large').">"; 
    echo '<p>'; 
    $attachment_meta = wp_get_attachment($attachment_id); 
    echo $attachment_meta['caption']; 
    echo '</p>'; 
    echo '</li>'; 
} 
echo '</ul></div>'; 

來源:wordpress topic forum

+0

對不起,發表在一個線程幾乎一歲。 我在搜索[我自己的問題]的解決方案時發現此問題(http://stackoverflow.com/questions/35985494/display-additional-product-information-eg-image-caption-when-hovering-produc/35986804? noredirect = 1個#comment59629294_35986804)。我嘗試將上面的代碼插入到WC content-product.php文件中,該文件輸出產品簡短說明。我想要的是在WP後端設置的圖像標題。我只想要它用於產品檔案中的產品圖像,而不是單個產品頁面。我是否需要編輯另一個文件,在這種情況下,哪一個? –

+0

上面的**函數**會進入你主題的'functions.php'文件。通過使用該功能,您可以獲得像ALT,Caption等所有數據。您需要傳遞「附件ID」才能獲取該數據。防爆。如果您的附加產品Image ID是** 12 **,那麼您可以獲得像'wp_get_attachment(12)'這樣的數據。 或者你可以使用插件:[懸停時的產品描述](https://wordpress.org/plugins/product-description-on-hover-woocommerce/) –