wordpress图片上传技术整理

一、wordpress 2.9版本以后引入了特色图像功能,如果你的wordpress主题支持该功能,我们在这里介绍一下特色图片的调用,如何在首页、分类页等列表页面特定位置显示指定的文章不同尺寸缩略图。

如果你使用的wordrpress主题没有特色图片功能,可以通过以下方法设置。

1、在主题文件夹下的functions.php文件中加入代码:

if ( function_exists( 'add_theme_support' ) ) {  
     add_theme_support( 'post-thumbnails' );  
}

2、在需要显示特色图像的地方插入以下代码

<?php if ( has_post_thumbnail()) : ?>
<a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>" >
<?php the_post_thumbnail(); ?>
</a>
<?php endif; ?>

二、上传图片涉及的表

post表:post_type: attachment

postmeta表:_wp_attachment_metadata、_wp_attached_file、_thumbnail_id

三、wordpress前台调用图片方法

wordpress特色图片相关函数:
<?php the_post_thumbnail(); ?>
<?php echo post_thumbnail(344, 128); ?>
get_post_thumbnail_id():获取文章缩略图 ID
get_the_post_thumbnail_url():获取文章缩略图链接
the_post_thumbnail_url():这个函数直接显示文章缩略图链接
get_the_post_thumbnail():获取文章缩略图而不是输出它 

下面是关于引用wordpress图片的代码,一共是5中格式:
<!--特色图像引用:完整尺寸-->
<?php $full_image_url = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'full'); echo $full_image_url[0]; ?>
<!--特色图像引用:小尺寸-->
<?php $thumbnail_image_url = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'thumbnail'); echo $thumbnail_image_url[0]; ?>
<!--特色图像引用:中尺寸-->
<?php $medium_image_url = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'medium'); echo $medium_image_url[0]; ?>
<!--特色图像引用:大尺寸-->
<?php $large_image_url = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'large'); echo $large_image_url[0]; ?>
<!--特色图像引用:自定义尺寸-->
<?php $array_image_url = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), array(200,200)); echo $array_image_url[0]; ?>


如果想要系统截取的其他尺寸的图片,对照上面的代码就可,然后把img的src里面的代码换一下就可以了。
<?php if ( has_post_thumbnail() ) { ?>
<a href="<?php the_permalink(); ?>" target="_blank" title="<?php the_title(); ?>">
//特色图片
<img alt="<?php the_title(); ?>" src="<?php $full_image_url = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'full'); echo $full_image_url[0]; ?>"/>
</a>
<?php } else {?>
<a href="<?php the_permalink(); ?>" target="_blank" title="<?php the_title(); ?>">
//暂无图片
<img title="<?php the_title(); ?>" src="<?php bloginfo('template_url'); ?>/images/morentu.png" />
</a>
<?php } ?>


特色图像缩略图尺寸参数设置:修改the_post_thumbnail(); 的参数即可。
1. the_post_thumbnail(‘thumbnail’);       // 小缩略图 (默认 150px x 150px )
2. the_post_thumbnail(‘medium’);          // 中缩略图 (默认 300px x 300px )-自适应图像比例
3. the_post_thumbnail(‘large’);           // 大缩略图 (默认 640px x 640px )-自适应图像比例
4. the_post_thumbnail(‘full’);            // 完整尺寸
5. the_post_thumbnail( array(100,100) );  // 自定义
其中 thumbnail、medium、large的默认尺寸在后台-设置-媒体中定义

四、_wp_attachment_metadata字符串表示涵义(由图片元数据的数组进行序列化保存到数据库,由serialize函数实现)

s表示string字符串,i表示int整数,a表示后面的元素个数

奇数位表示键名,其中s开头的那一串,比如s:5:"width";  里面的5是因为"width"一共是5个字符

偶数位表示键值,其中i表示int整数

a:3:{s:5:"width";i:1024;s:6:"height";i:768;s:4:"file";s:10:"123456.jpg";}里面有三对,所以a后面是3,

由wp_generate_attachment_metadata($attachment_id, $file)函数生成

$attachment_id (int) (必填) 要处理的附件ID。默认值: None

$file (string) (必填) 文件在服务器上的位置。使用绝对路径而不是文件的URI。文件必须在uploads目录中。请参阅wp_upload_dir() 默认值: None

参考资料:

1、黄聪:WordPress: 使用 wp_insert_attachment 上传附件

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值