2015-04-21 156 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/) –