小冬SEO

WordPress调用文章所有图片做图片集方法

2019-06-12 13:37:47 2267 WordPress笔记

WordPress程序主要是为博客开发的,但是这个程序的可开发性非常强,所及基本上能够实现你所想要的所有功能,例如我们想要实现图片集功能,其实也很简单,只需要通过相关代码获取文档中所有图片即可,方法有很多,网上的教程也非常多,这里我分享一种非常加单的方法:

调用代码如下:

<?php echo hui_get_thumbnail(false,true);?>

修改方法如下:找到主题模板中的functions.php文件,在其中加入如下代码:

<?php

function hui_get_thumbnail( $single=true, $must=true ) {

    global $post;

    $html = '';

    if ( has_post_thumbnail() ) {

        $domsxe = simplexml_load_string(get_the_post_thumbnail());

        $src = $domsxe->attributes()->src;

        $src_array = wp_get_attachment_image_src(hui_get_attachment_id_from_src($src), 'thumbnail');

        $html = sprintf('<li><img src="%s" /></li>', $src_array[0]);

    } else {

        $content = $post->post_content;

        preg_match_all('/<img.*?(?: |\t|\r|\n)?src=['"]?(.+?)['"]?(?:(?: |\t|\r|\n)+.*?)?>/sim', $content, $strResult, PREG_PATTERN_ORDER);

        $images = $strResult[1];

        $counter = count($strResult[1]);

        $i = 0;

        foreach($images as $src){

            $i++;

            $src2 = wp_get_attachment_image_src(hui_get_attachment_id_from_src($src), 'thumbnail');

            $src2 = $src2[0];

            if( !$src2 && true ){

                $src = $src;

            }else{

                $src = $src2;

            }

            $item = sprintf('<li><img src="%s" /></li>', $src);

            if( $single){

                return $item;

                break;

            }

            $html .= $item;

            if(

                ($counter >= 4 && $counter < 8 && $i >= 4) ||

                ($counter >= 8 && $i >= 8) ||

                ($counter > 0 && $counter < 4 && $i >= $counter)

            ){

                break;

            }

        }

    }

    return $html;

}


function hui_get_attachment_id_from_src ($link) {

    global $wpdb;

    $link = preg_replace('/-d+xd+(?=.(jpg|jpeg|png|gif)$)/i', '', $link);

    return $wpdb->get_var("SELECT ID FROM {$wpdb->posts} WHERE guid='$link'");

}

?>

这样就实现了调用文章中所有图片了。当然图片调用出来是无序列表的方式展示的,这个时候我们可以在上面的代码中加入你想加入的属性和样式!

版权保护: 本文由小冬SEO编辑发布,转载请保留链接: http://www.myseoyh.cn/shuo/101.html