香雨站

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 116|回复: 0

wordpress自定义缩略图如何动态生成及调用

[复制链接]

2

主题

3

帖子

7

积分

新手上路

Rank: 1

积分
7
发表于 2022-9-21 17:43:23 | 显示全部楼层 |阅读模式
wordpress会自动生成缩略图,中等图片,以及大图。除非你将它关闭了。
主题里调用wordpress生成的缩略图方法如下:
在调用缩略图之前,你需要激活缩略的功能。
add_theme_support( 'post-thumbnails' );
将这段代码插入到functions.php中,插入后,你在写文字时,就会增加有一个插入特色图片的功能。

这时你需要插入一张特色图片,以便后面的调用。

the_post_thumbnail();这个函数直接调用特色图片,将其插入你需要插入的位置即可,前面不需要输入echo,但是这个调用显示的原始图片,并非缩略图。

set_post_thumbnail_size("260","160");将这段代码插入到functions.php中后,the_post_thumbnail();这个函数调用图片时,会自动将图片等比例压缩到宽260或者高160,但是也只是尺寸改小了,图片仍然是原始图片!

the_post_thumbnail('thumbnail');这个函数调用的是wordpress系统生成的默认的缩略图,一般生成的是150*150大小的,修改这个设置是在【设置】-【媒体】中修改缩略图尺寸。修改后,只能影响你以后上传的图片,无法影响到以前的图片。使用这个函数调用的是缩略图本身。

the_post_thumbnail(array(200,100));使用这个函数,可以自定义特色图片的尺寸,虽然尺寸可以改的很小,但是图片本身还是原始图片,并非缩略图,所以图片本身还是相对比较大的,占用流量,影响网站速度
如何生成自定义缩略图?

下载一个缩略图类库,
下载地址链接: https://pan.baidu.com/s/1eS3vJSFe3K_1RDzsZsdelQ 提取码: 6666
下载后放在主题的根目录下,一般与functions.php和style.css和index.php是同级目录。
然后在functions.php中插入如下代码:
//输出缩略图地址

function post_thumbnail_src(){

    global $post;

    if( $values = get_post_custom_values("thumbnail") ) { //输出自定义域图片地址

        $values = get_post_custom_values("thumbnail");

        $post_thumbnail_src = $values [0];

    } elseif( has_post_thumbnail() ){ //如果有特色缩略图,则输出缩略图地址

        $thumbnail_src = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID),'full');

        $post_thumbnail_src = $thumbnail_src [0];

    } else {

        $post_thumbnail_src = '';

        ob_start();

        ob_end_clean();

        $output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches);

        $post_thumbnail_src = $matches [1] [0]; //获取该图片 src

        if(empty($post_thumbnail_src)){

            $post_thumbnail_src = get_bloginfo('template_url')."/images/no-image.jpg"; //如果日志中没有图片,则显示默认图片

        }

    };

    echo $post_thumbnail_src;

}
网页如何动态调用缩略图

在需要调用缩略图的地方插入如下代码:
<img src="<?php bloginfo('template_url');?>/timthumb.php?src=<?php echo post_thumbnail_src(); ?>&h=150&w=200&zc=1" alt="<?php the_title(); ?>" class="thumbnail"/> 注意这段代码是HTML代码开头的,不能直接放在PHP代码里哦。如果你正在编辑的是一段PHP代码,解决方案如下,
?>

<img src="<?php bloginfo('template_url');?>/timthumb.php?src=<?php echo post_thumbnail_src(); ?>&h=150&w=200&zc=1" alt="<?php the_title(); ?>" class="thumbnail"/>

<?php在代码前加入 ?> 用于结束PHP代码,在代码后加入 <?php 用以继续后面的PHP代码,这样就可以了。
修改缩略图的宽度和高度,只需要修改代码里的 h=150 ,w=200,宽度改成260,高度改成160的代码如下:
这段代码调用的是缩略图,并非原图改小尺寸,所以,图片本身是比较小的。
<img src="<?php bloginfo('template_url');?>/timthumb.php?src=<?php echo post_thumbnail_src(); ?>&h=160&w=260&zc=1" alt="<?php the_title(); ?>" class="thumbnail"/>



最后成功调用并显示缩略图,缩略图大小是自己设置的大小
文章来源于:
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|香雨站

GMT+8, 2025-3-15 17:00 , Processed in 0.254424 second(s), 32 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.. 技术支持 by 巅峰设计

快速回复 返回顶部 返回列表