WordPress使用Fullscreen Galleria显示ImPress列表图像

时间:2017-08-09 00:47:35

标签: php wordpress

我正在使用IMPress列表显示手动显示房地产列表。对于单个列表,可以一次一个地添加图像库的图像。

enter image description here

这些输出使用

<?php echo do_shortcode(get_post_meta( $post->ID, '_listing_gallery', true)); ?>

我想使用Fullscreen Galleria来显示图片。我这就是我尝试过的。这不起作用,因为短代码需要图像ID。

echo do_shortcode('[fsg_link class="btn-primary" include="' . get_post_meta( $post->ID, '_listing_gallery', true) . '"]View Full Screen[/fsg_link]');

看来这个特殊的短代码需要图片ID,而不是HTML。

显示图像ID的最佳方法是什么,所以它输出如此

echo do_shortcode('[fsg_link class="btn-primary" include="501,502,503"]View Full Screen[/fsg_link]');

谢谢!

1 个答案:

答案 0 :(得分:0)

的functions.php

function pippin_get_image_id($image_url) {
        global $wpdb;
       $attachment = $wpdb->get_col($wpdb->prepare("SELECT ID FROM $wpdb->posts WHERE guid='%s';", $image_url )); 
return $attachment[0]; 
}

页面模板

    if (get_post_meta( $post->ID, '_listing_gallery', true) != '') { 

        $image_url = get_post_meta( $post->ID, '_listing_gallery', true);
        $doc = new DOMDocument;
        $doc->loadHTML($image_url);
        $galleryimg = $doc->getElementsByTagName('img');

        $images = array();

        foreach ($galleryimg as $galleryimg){

            $galleryimg = $galleryimg->getAttribute('src');             
            $image_id = pippin_get_image_id($galleryimg);
            array_push($images, $image_id);                 
            $string = rtrim(implode(',', $images), ',');

    }

    echo do_shortcode('[fsg_link class="btn-primary" include="' . $string . '"]View Full Screen[/fsg_link]');