填写您的邮件地址,订阅我们的精彩内容:

新增函数:wordpress获取文章第一张图片

在很多模板制作中,朋友们希望获取文章的第一张图作为文章列表中文章标题前的图片展示,今天写一个函数,用来实现这一效果。通过本函数,你可以在今后的模板设计中,不再考虑什么情况下使用图片,应该如何调用文章图片等问题,只需在恰当的位置调用本函数即可。

代码

你只需将下面的函数加入到functions.php中,然后在文章循环内调用该函数即可:

function get_post_first_pic($post_id,$default=0,$link=0,$style=”){
$post=get_post($post_id);
$thumb=get_the_post_thumbnail($post_id,array(‘alt’=>trim(strip_tags($post->post_title)),’title’=>trim(strip_tags($post->post_title))));
if(!$thumb){
preg_match(‘/<img.+src=[‘”]([^'”]+)[‘”].* />/i’,$post->post_content, $index_piclink);
if($index_piclink[1]){
$thumb='<img src=”‘.$index_piclink[1].'” title=”‘.$post->post_title.'” alt=”‘.$post->post_title.'” ‘.$style.’ />’;
}else{
if($default!=0)$thumb='<img src=”‘.get_bloginfo(‘template_url’).’/images/default.jpg” title=”‘.$post->post_title.'” alt=”‘.$post->post_title.'” ‘.$style.’ />’;
}
}
if($thumb&&$link!=0&&$link!=”)$output='<a href=”‘.get_permalink().'” title=”‘.$post->post_title.'”>’.$thumb.'</a>’;
else $output=$thumb;
return $output;
}
function post_first_pic($post_id,$default=0,$link=0,$style=”){
echo get_post_first_pic($post_id,$default,$link,$style);
}

详解

第一个函数是获取函数,第二个函数则将第一个函数中获取的结果显示出来。

get_post_first_pic($post_id,$default=0,$link=0,$style=”)有四个参数,其中$post_id指要获取的文章ID,如果再LOOP循环中,可以直接用$post->ID代替,显示该文章的第一张图片;$default用于在该文章没有图片的情况下,是否显示模板目录下的/images/default.jpg作为替代图片,非0则使用;$link则表示是否将该图片链接指向文章,如果为0,则不带链接;$style就是对图片添加新的属性,如你可以将$style=’style=”border:none;”‘;从而添加特定的附属属性。

当文章中没有图片,$default=0时,则不显示任何内容。

例子

下面是一个调用的例子:

<?php if(function_exists(‘post_first_pic’))post_first_pic($post->ID,1,1,’style=”width:150px;height:150px;”‘);?>
<?php the_excerpt(); ?>

上面这段代码放在while循环中,将以摘要的形式输出文章内容,并在摘要前面加入一张图片。

下面我简单说几句