【问题标题】:Get WooCommerce product gallery image caption获取 WooCommerce 产品库图片说明
【发布时间】:2015-04-22 21:17:48
【问题描述】:

对于知道他们的 wordpress 的人的快速问题。

我正在使用以下代码在产品页面上显示 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>';

【问题讨论】:

    标签: function woocommerce wordpress


    【解决方案1】:

    实现方法如下:

    首先将以下代码添加到您主题的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

    【讨论】:

    • 很抱歉在将近一年前的帖子中发帖。我在寻找my own problem 的解决方案时发现了这一点。我尝试将上述代码插入到 WC content-product.php 文件中,该文件输出产品简短描述。我想要的是在 WP 后端设置的图像标题。我只希望它用于产品档案中的产品图像,而不是单个产品页面。我是否需要编辑其他文件,在这种情况下,需要编辑哪个文件?
    • 上面的 function 将进入您主题的 functions.php 文件。通过使用该功能,您可以获得所有数据,如 ALT、Caption 等。您需要通过 attachment ID 来获取该数据。前任。如果您附加的产品图片 ID 是 12,那么您可以获得像 wp_get_attachment(12) 这样的数据。或者你可以使用插件:Product Description on Hover
    【解决方案2】:

    您可以使用wp_get_attachment_metadata。比如:

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

    【讨论】:

    • 谢谢...但给了我一个语法错误:'解析错误:语法错误,意外'[' in /var/sites/t/website.co.uk/public_html/wp-content/ plugins/shortcode-exec‌​-php/shortcode-exec-php-class.php(895) : eval()'d code on line 10'
    • 这行不通,因为wp_get_attachment_metadata 将给出EXIF 标题而不是您在后端输入的标题。
    猜你喜欢
    • 2016-09-13
    • 2014-11-26
    • 2015-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-10
    • 2014-01-28
    相关资源
    最近更新 更多