!
也想出现在这里? 联系我们
广告位

WordPress 可用的缩略图函数

记录一个 WordPress 获取文章中的图片作为缩略图,并缓存的函数,方便以后应用。

  1. <?php
  2. if( !defined( 'THEME_THUMBNAIL_PATH' ) ) define( 'THEME_THUMBNAIL_PATH', '/cache/theme-thumbnail' ); //存储目录
  3. function biji_build_empty_index( $path ){ //生成空白首页
  4. $index = $path . '/index.php';
  5. if( is_file( $index ) ) return;
  6. wp_mkdir_p( $path );
  7. file_put_contents( $index, "<?php\n// Silence is golden.\n" );
  8. }
  9. function biji_crop_thumbnail( $url, $width, $height = null ){ //裁剪图片
  10. $width = (int) $width;
  11. $height = empty( $height ) ? $width : (int) $height;
  12. $hash = md5( $url );
  13. $file_path = constant( 'WP_CONTENT_DIR' ) . constant( 'THEME_THUMBNAIL_PATH' ) . "/$hash-$width-$height.jpg";
  14. $file_url = content_url( constant( 'THEME_THUMBNAIL_PATH' ) . "/$hash-$width-$height.jpg" );
  15. if( is_file( $file_path ) ) return $file_url;
  16. $editor = wp_get_image_editor( $url );
  17. if( is_wp_error( $editor ) ) return $url;
  18. $size = $editor->get_size();
  19. $dims = image_resize_dimensions( $size['width'], $size['height'], $width, $height, true );
  20. //if( !$dims ) return $url;
  21. $cmp = min( $size['width'] / $width, $size['height'] / $height );
  22. if( is_wp_error( $editor->crop( $dims[2], $dims[3], $width * $cmp, $height * $cmp, $width, $height ) ) ) return $url;
  23. biji_build_empty_index( constant( 'WP_CONTENT_DIR' ) . constant( 'THEME_THUMBNAIL_PATH' ) );
  24. return is_wp_error( $editor->save( $file_path, 'image/jpg' ) ) ? $url : $file_url;
  25. }
  26. //缩略图获取post_thumbnail
  27. function post_thumbnail($width = 275,$height = 170 )
  28. {
  29. global $post;
  30. //如果有特色图片则取特色图片
  31. if( has_post_thumbnail( $post->ID ) ){
  32. $thumbnail_ID = get_post_thumbnail_id( $post->ID );
  33. $thumbnailsrc = wp_get_attachment_image_src( $thumbnail_ID, 'full' );
  34. return biji_crop_thumbnail($thumbnailsrc[0],$width,$height);
  35. } else {
  36. $content = $post->post_content;
  37. preg_match_all('/<img.*?(?: |\\t|\\r|\\n)?src=[\'"]?(.+?)[\'"]?(?:(?: |\\t|\\r|\\n)+.*?)? >/sim', $content, $strResult, PREG_PATTERN_ORDER);
  38. if(count($strResult[1]) > 0) return biji_crop_thumbnail($strResult[1][0],$width,$height);
  39. else{
  40. return false;
  41. }
  42. }
  43. }
  44. ?>

在调用时,可以这样调用:

  1. <?php if (post_thumbnail(110, 110)){ ?>
  2. <img src="<?php echo post_thumbnail(110, 110); ?>" srcset="<?php echo post_thumbnail(220, 220); ?> 2x"/>
  3. <?php }else{
  4. echo '<i class="icon-file-text2"></i>';
  5. }?>

给TA打赏
共{{data.count}}人
人已打赏
WordPress教程

WordPress 主题批量编辑自定义字段

2022-11-18 14:08:42

WordPress教程

WordPress 代码实现自定义分页函数

2022-11-18 15:09:21

下载说明

  • 1、微码盒所提供的压缩包若无特别说明,解压密码均为weimahe.com
  • 2、下载后文件若为压缩包格式,请安装7Z软件或者其它压缩软件进行解压;
  • 3、文件比较大的时候,建议使用下载工具进行下载,浏览器下载有时候会自动中断,导致下载错误;
  • 4、资源可能会由于内容问题被和谐,导致下载链接不可用,遇到此问题,请到文章页面进行反馈,以便微码盒及时进行更新;
  • 5、其他下载问题请自行搜索教程,这里不一一讲解。

站长声明

本站大部分下载资源收集于网络,只做学习和交流使用,版权归原作者所有;若为付费资源,请在下载后24小时之内自觉删除;若作商业用途,请到原网站购买;由于未及时购买和付费发生的侵权行为,与本站无关。本站发布的内容若侵犯到您的权益,请联系本站删除,我们将及时处理!
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索