最近设计了一款图片类的WordPress主题 - mango主题,发布后,收到了一个奇怪的bug反馈,就是插入的图片无法显示?
首先确定一下获取缩略图的逻辑是wp_get_attachment_image
这个函数,意义就是根据媒体ID来输出裁剪缩略图,能获取到媒体ID就可以输出该图片的缩略图;反之如果获取不到媒体ID则无法输出缩略图;
问题:为什么获取不到媒体的ID呢?
研究:发现插入到文章的图片不是全尺寸的原图文件,而是*****768x500.jpg 这样的文件;因为不是全尺寸的原图文件,所以通过attachment_url_to_postid
就查不到媒体ID,所以就无法显示出缩略图了
解决:强制用户上传的图片插入到文章时,以全尺寸插入?是否问题则解决了呢?试试吧
给代码到functions.php
文件里
//WordPress文章插入图片显示方式(尺寸/对齐方式/链接到)
add_action( 'after_setup_theme', 'default_attachment_display_settings' );
function default_attachment_display_settings() {
update_option( 'image_default_align', 'center' ); //居中显示
update_option( 'image_default_link_type', ' file ' ); //连接到媒体文件本身
update_option( 'image_default_size', 'full' ); //完整尺寸
}
代码都加了注释,清晰明了,经过此操作后,再插入进来的图像则自动以全尺寸出现,因为是全尺寸则可用查到媒体ID,就可以对其进行裁剪,则正常显示出裁剪后的缩略图。