阿里云服务器

制作wordpress调用文章图片一般采用调用第一张缩略图和特色图片两种方式。

如果要调用文章中多个图片或者所有图片的话,上面两种方式就不适用了。

这时候我们需要给我们的模板函数添加调用文章图片的代码才能够实现。

下面给大家提供两种调用方式以供选择:

第一种;

1.模板函数functions.php中添加如下代码:

function all_img($soContent){
$soImages = '~<img [^\>]*\ />~';
preg_match_all( $soImages, $soContent, $thePics );
$allPics = count($thePics);
if( $allPics > 0 ){
foreach($thePics[0] as $v){
echo $v;
}
}
else {
echo "<img src='";
echo bloginfo('template_url');
echo "/images/thumb.gif'>";
}
}
register_nav_menus( array(
'primary' => __( 'Primary Navigation'),
));

2.在需要调用的位置添加调用代码即可

<?php all_img($post->post_content);?>

第二种方法:

1.同样是在模板函数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+x\d+(?=\.(jpg|jpeg|png|gif)$)/i', '', $link);
    return $wpdb->get_var("SELECT ID FROM {$wpdb->posts} WHERE guid='$link'");
}

可以自己修改调用规则

2.调用代码

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

 

以上就是调用文章所有图片的两种方法,希望对大家有所帮助!

相关阅读: