不知道WordPress的开发者是怎么想的,设置了一个非常鸡肋的不能引用外链的“特色图像”功能,而老外主题开发者们又对此功能趋之若鹜,每个主题都有,Hueman也不例外,导致主页如果设置图像为“Show featured image placeholders if no featured image is set”时一大方框不是很好看,但真的每篇文章都去设置一张特色图像又占空间还不能引用外链,还不能随机显示默认图像。

找了一圈,《WordPress文章没有图片时显示随机图片或默认图片》给了个不错的解决方案,经实践、修改后将步骤介绍如下:

1、在functions.php加入如下代码:

//支持外链缩略图
if ( function_exists('add_theme_support') )
 add_theme_support('post-thumbnails');
function catch_first_image() 
{
	global $post, $posts;$first_img = '';
	ob_start();
	ob_end_clean();
	$output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches);
	$first_img = $matches [1] [0];
	//判断图片是否过小
	if(!empty($first_img))
	{
		$image_size = getimagesize($first_img);
		$image_width = $image_size[0];
	}
	//如果第一张图不存在或过小,则返回随机图片
	if(empty($first_img) || $image_width<50){
		$first_img = '';
		//从2张图中随机选择,可根据自己的图片数量设置
		$random = mt_rand(1, 2);
		echo get_bloginfo ( 'stylesheet_directory' );
		echo '/images/random/'.$random.'.JPG';
		}
  return $first_img;
}

2、在主题中新建/images/random/目录,找一些自己拍的图片放进去。

3、原主题content.php中引用特色图像的代码:

				<?php if ( has_post_thumbnail() ): ?>
					<?php the_post_thumbnail('thumb-medium'); ?>
				<?php elseif ( ot_get_option('placeholder') != 'off' ): ?>
					<img src="<?php echo get_template_directory_uri(); ?>/img/thumb-medium.png" alt="<?php the_title(); ?>" />
				<?php endif; ?>

修改为:

<!--裁切高大于宽的图片-->
<div  style="overflow:hidden;width:100%;max-height:100px;">
<img src='<?php echo catch_first_image(); ?>' />
</div>

4、CSS中注意修改相关代码:

.post-thumbnail img { 
display: block; 
width: 100%; 
//height: auto;
}

告成!

发表评论

电子邮件地址不会被公开。 必填项已用*标注

23条评论

  1. 其实首页我不太喜欢很多图片

    因为无法保证图片一个风格,或者是彼此色调和谐

    一旦图多,色调多了,就显得页面非常脏乱

    作为喜欢简洁风的人,不能忍受太多东西的堆砌

    回复
  2. 那谁谁谁叫什么破袜子来着,刚想把他网站打开给你看,结果发现人家换模板了,不脏乱了……

    回复