关注前端开发微信微信号web007007

完美解决WordPress缩略图显示问题

作者 管理员 发布时间 2012-09-05 09:32 文章分类 PHP开发 文章评论 7条评论 阅读次数

很多朋友在使用wordpress时编辑喜欢配合图片来使用,把图片配合在新闻当中调用一个一直是朋友们的难题(这个只针对新手来说,高手勿板砖0.0),下面我给出一个最好的解决方法,供大家参考!当然、如果有更好的方法,希望能一起分享!

首先看一下效果:

完美解决WordPress缩略图显示问题-WEB前端开发网

这个是小图片的调用,这样的方法具体怎么实现呢?现在开始动手:

首先打开主题目录下的 functions.php 文件,打开后在合理的位置(<?php … ?>就是合理的位置)插入如下代码:

[php]

// 自动检索日志内首张图片、反之默认
function catch_that_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)){
$first_img = “http://www.cikees.com/wp-content/themes/cikees/images/default.jpg“;
}
return $first_img;
}

[/php]

解释一下代码:
此类的功能是自动检索日志内的第一张图片并且输出,如果日之内没有如片、则显示制定的一张图片:
自己定义的图片可以更改如下代码:

$first_img = “http://www.web92.net/wp-content/themes/weisay_heibai/blog/img/651.jpg“;

然后配合输出函数 <?php echo catch_that_image() ?> ,这样你的主题就具备自动检索图片功能了;
那么、仅有这个是不行的,我们一般发布日志时候会有很多张图片、需要分别显示在不同的地方,尤其是CMS主题类型,那么这样的方法就编辑局限了;我之前有写过大约上百个主题、这样的问题经常遇到,而我解决的方法在CMS主题当中是编辑凑效的,这就要利用wordpress强大的自定义域,可能大家都不理解什么是自定义域,其实自定义域就是一个函数,通过一个方法调用它、判断它、把它输出而已,具体怎么实现呢? Start here,Look!(给出一个编辑使用的方法:)先上代码,后作解释:


<?php if ( get_post_meta($post->ID, ‘min’, true) ) : ?>
<?php $key = get_post_meta($post->ID, ‘min’, true); ?>
<a href=”<?php the_permalink(); ?>” title=”<?php the_title(); ?>” rel=”bookmark”><img src=”<?php echo $key; ?>” alt=”<?php the_title(); ?>” /></a>
<?php else: ?>
<a href=”<?php the_permalink() ?>” title=”<?php the_title(); ?>” rel=”bookmark”><img alt=”<?php the_title(); ?>” src=”<?php echo catch_that_image() ?>” /></a>
<?php endif; ?>

这个就是最好的实现方法!代码解释如下:
首先判断自定义域min的值是否为空:判断代码:
<?php if ( get_post_meta($post->ID, ‘min’, true) ) : ?><?php $key = get_post_meta($post->ID, ‘min’, true); ?>
如果这个值不为空、直接输出他的值就可以了,输出的方法:<?php echo $key; ?> 这个$key 就是自定义域的值;
如果这个自定义域的值是空的,说明你在发布日志的时候没有输入值,那么第一段代码就其作用了,它会自动选择你日志当中的第一篇如片进行输出,还可以接着继续判断,一个自定义域没有有效值、我们可以接着判断第二个、第三个…具体的方法看完这个帖子大概就会了;继续:再谈如何设置自定义域:
那么 怎么给自定义域给值呢?
方法:在你发布日志的时候在自定义域中输入图片的URL就可以了,输入的URL就是$key的值;
附上自定义域的设置图:
在发布日志的时候点击Enter new 然后在Select 文本框(也就是Name 下面的文本框)中输入自定义域的键:min 然后在Value下面的文本框中输入图片的URL 点击 添加即可!

完美解决WordPress缩略图显示问题-WEB前端开发网

到此、发布一篇文章测试吧!你会看到你需要的效果,至于怎么去显示,就要靠CSS去控制了,你可以附上漂亮的CSS效果,看起来会更加完美!

本文固定链接: http://www.web92.net/682.html | WEB前端开发

该日志由 于2012年09月05日发表在 PHP开发 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: 完美解决WordPress缩略图显示问题 | WEB前端开发
关键字: ,
  1. 其实 缩略图的调用是个比较头疼的问题 是生成小图还是直接调用原图 用css限制图片宽高 自己用的主题还好 自己可以选择 但是别人用的话 很多需要考虑的问题

  2. 我用的这个主题有两种发图片的方法:外链图片和上传。
    上传图片发文,首页缩略图不显示,src位置没有图片链接。
    用外链形式发图片,首页缩略图正常显示。
    二者发文以后,进入文章页都可以看到图片。
    有什么解决办法吗?

  3. ob_start();
    ob_end_clean();

    很是不解,这两句是什么作用。开启了cache又马上清除,中间也没做什么操作,感觉很是多余啊。