/ 软件 / 4137阅

WordPress文章显示第一张图或随机图片

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

WordPress
WordPress

找了一圈,《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. Betty

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

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

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

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

    Safari 8 · Mac OS X 10.10
    1. S̆̈

      @Betty好吧,算是多尝试些风格嘛,说不定哪天又换回来了。哈~

      Chromium 38 · Ubuntu
      1. Betty

        @S̆̈没事,你随意,你自己喜欢就好

        如果风格真是脏到乱了,大不了就跟那谁谁谁的博客一样,我不看就是了

        Safari 8 · Mac OS X 10.10
        1. S̆̈

          @Betty好吓人啊,这个很严重的,我可不敢赶走本博最好的观众呀!!
          那谁谁是谁呀,很好奇……

          Chromium 38 · Ubuntu
        2. 护法

          @Betty就是,那谁谁是谁啊?要不好一阵子都没见你上俺家来了? ❗

          Google Chrome 39 · Windows 7
          1. S̆̈

            @护法那谁谁下面Betty回复了,叫什么破袜子的一个网友。

            Google Chrome 31 · Windows XP
    2. S̆̈

      @Betty我觉得你说的对,还是简洁一点好。 😆

      Chromium 38 · Ubuntu
      1. Betty

        @S̆̈哈哈,莫非你试过多图显示以后,被错杂的视觉效果给看醉了?

        Safari 8 · Mac OS X 10.10
        1. S̆̈

          @Betty元素多了点,好看是好看but不符合内容突出的要求嘛

          WebView 1 · Samsung SM-G9009D
  2. Betty

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

    Safari 8 · Mac OS X 10.10
    1. S̆̈

      @Betty人家太紧张了,不能承受被你辱骂的痛

      Chromium 38 · Ubuntu
      1. Betty

        @S̆̈你错了,我跟人家没像跟你一样——熟?
        所以人家在用那个脏脏的模板时候,我一句话没说,就顶多不去看而已,毕竟那是人家的地盘,人家喜欢最重要
        现在人家换模板了,新的模板算干净的,然后我才表示出了对上一个模板的不满意,显脏……

        Safari 8 · Mac OS X 10.10
        1. S̆̈

          @Betty我在你那找了半天也没找到破袜子……

          Chromium 38 · Ubuntu
  3. 瑾瑜

    这第一张图的像素不够,首页放大就模糊了,而且大部分是白色。

    Internet Explorer 11 · Windows 8.1
    1. S̆̈

      @瑾瑜昨晚晚睡前随便找的……心想能混就混了,想不到读者们的眼睛真是雪亮啊!

      WebView 1 · Samsung SM-G9009D
  4. Betty

    来,破袜子点此:http://pewae.com/

    Google Chrome 39 · Mac OS X 10.10
    1. S̆̈

      @Betty貌似改过模板后还行……

      Chromium 38 · Ubuntu
      1. Betty

        @S̆̈今天再去看,他模板是又换过了一个……

        我昨天看到的不是今天这一个……

        Safari 8 · Mac OS X 10.10
        1. S̆̈

          @Betty好吧,今天那款还可以啦

          WebView 1 · Samsung SM-G9009D
        2. 护法

          @Betty还是有点闹腾 😛

          Google Chrome 39 · Windows 7
          1. S̆̈

            @护法不闹不欢 😀

            Google Chrome 31 · Windows XP
  5. 护法

    太同意了,这个特色图片功能经常导致我的首页出现空窗。

    Google Chrome 39 · Windows 7
    1. S̆̈

      @护法要没啥用就删了吧~ 🙂

      Google Chrome 31 · Windows XP

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注