WordPress 获取文章内所有图片

前端 377
7个月前

WordPress 获取文章内所有图片

将下列代码添加至 functions.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'");
}

调用代码


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

相关文章

WordPress 自动为新文章添加已使用过的历史标签非插件版

每当我们写文章的时候,都需要手动给 WordPress 文章添加标签,这样既能给访问者明确这篇文章的…

212
2个月前
评论神器一键自动填写昵称、邮箱和网址

适用WordPress、Typecho、ZBlog、Emlog、多说等平台的评论神器 javascr…

223
3个月前
WordPress 利用sql命令批量修改友情链接全部在新窗口打开

登陆数据库,然后执行 sql 命令: UPDATE Wp_links SET link_target…

149
3个月前

共有0条评论

评论本文