Post

WP Thumbnails 常见问题

文章目录

最近在用WP-Thumbnails这个插件来给公司网页控制缩略图,于是把这篇文字搬运过来。

另外,它这个插件是没有给各个分类添加缺省图片的功能,我还稍微修改了一下。亮瞎狗眼式的与水煮鱼-七牛镜像存储的缩略图功能相结合。这个就不拿出来让大家贱笑了。

常见问题列表:

插件工作原理是什么?

答:插件自动维护一个自定义域 ta-thumbnail,当日志被访问时,插件扫描日志内容,提取图片地址,保存在ta-thumbnail中,多张图片以英文分号;隔开。之后插件调用WordPress自带的缩略功能制作各种尺寸的缩略图。

请点开日志!

很有可能一开始你看不到任何缩略图,请逐一点开日志。因为就在你点击访问文章的那一刹那,而不是保存文章的那一刹那,WP-Thumbnails开始了缩略图的检测。每篇文章只要被访问到一次就足够了。

如果你启用了首页缩略图,就会发现只要打开首页,首页的所有文章都会被自动访问到,首页每篇文章的缩略图都会自动展示出来,从而使得你不必逐一点开日志。

什么是自定义域?

答:你发表日志时就可以看到编辑框下面的自定义域,你可以新建、删除和更新自定义域:

WP Thumbnails 的问题反馈

我发现自定义域的值为 NoMediaFound ,什么意思?

答:No Media found , 意思是插件没有在该日志找到图片或者视频(3.1.0版本之前为NoPicturesFound)。

没有找到图片的原因包括:

真的没有图片;

有图片,但该图片地址已经失效,故无法为之制作缩略图;

有图片,但该图片来自国外相册,在中国部分地区被屏蔽,故无法为之制作缩略图;

有图片,但该图片不是jpg、jpeg、gif、png格式,被插件无视;

有图片,但图片的文件名太怪异了,包含了怪异的字符(如中文),被插件无视;

有图片,但太小了,被插件无视;(有的人把首页缩略图的尺寸设置得无比巨大,然后埋怨怎么没有缩略图,真无语)

有图片,但该图片是外链图片,并且空间商禁用了远程访问外链网站(见下文)。

我把自定义域 ta-thumbnail 删了,怎么办?

答:删了就删了,没事,插件发现 ta-thumbnail 删了后会自动补上,并重新提取图片。有时候出了问题,还真需要你把 ta-thumbnail 给删了呢。

你还可以自己编辑 ta-thumbnail 的值(多张图片地址以英文分号隔开)。

尤其是唯独某一篇文章缩略图不正常时,试试删除该文章的ta-thumbnail,往往问题就自然得到解决。

我在一篇已经发表过的文章中补充了图片,但是插件没有显示这篇文章的缩略图?

答:对于已经发表过的文章,本插件不会再次检查缩略图。这个时候,你需要删除这篇文章的自定义域ta-thumbnail,插件就会重新检查和生成缩略图。

我计划在下一版本增加自动重新检测的功能。

无法保存远程(外链)图片,即无法本地化?

答:有的博主反映:外链图片无法本地化,无法提取缩略图。

原因:你的空间商禁用了远程访问。你的网站php环境没有开通 file_get_contents 这个函数。有些主机服务商把php的 allow_url_fopen 选项是关闭了,故无法使用file_get_contents来获取远程web页面的内容。

如果你熟悉PHP,可以编辑本插件的ta_save_pic.php文件,找到“file_get_contents”这个字符串,把它前面的字符“@”去掉,然后再测试远程图片,如果在网站顶部出现类似如下的信息:

Warning: file_get_contents() [function.file-get-contents]: URL file-access is disabled in the server configuration in .../wp-content/plugins/wp-thumbnails/ta_save_pic.php on line 21

那么说明你的网站的确没有开通 file_get_contents 这个函数。

空间商禁用了远程访问外链网站,怎么办?

答:联系你的空间商,请他开通php的 allow_url_fopen 选项。

插件提取视频缩略图失败?

插件没有找到视频缩略图时,自定义域 ta-thumbnail 的值会显示为NoMediaFound,这是因为:

目前只支持优酷、土豆、酷6三家网站的视频;

请勿使用插件smart video插入视频代码,因为它用的是它自己定义的格式,WP-Thumbnails识别不了,请手动插入视频网站给出的分享代码。

空间商禁用了远程访问外链网站(见上文)。

视频网站的分享代码经常变动,目前只支持最新的分享代码,只要文章中出现类似如下的内容,插件就会提取视频缩略图:

http://player.youku.com/player.php/sid/XMTAxNjk4OTMy/v.swf

http://v.youku.com/v_show/id_XMTAxNjk4OTMy.html

http://player.ku6.com/refer/sPysxoPI8pe51o5c/v.swf

http://v.ku6.com/show/sPysxoPI8pe51o5c.html

http://www.tudou.com/v/_ke1lzCnBYw/v.swf

http://www.tudou.com/programs/view/_ke1lzCnBYw/

其中,粗体字部分必须出现。

如果你文章中的视频代码不符合上面6种情况,怎么办?——很简单,到视频网站复制最新的分享代码,重新粘贴到你的文章中。

我可以直接在自定义域 ta-thumbnail 中添加视频网址吗?

答:不可以。视频缩略图格式比较复杂,只能由WP-Thumbnails自动提取。

 

我不会放置代码,该怎么办?

答:大多数情形下,你不需要放置代码:

对于页面缩略图,插件支持自动启动。

对于随机文章缩略图、相关文章缩略图、全排列缩略图,插件支持自动插入到文章内容后面。

对于随机文章缩略图、相关文章缩略图、最新文章缩略图、最热门文章缩略图,插件支持从侧边栏小工具启动。

但是,自动启动的效果可能并不能让你满意,比如和周围内容不协调啦,比如出现的位置不对啦,甚至自动启动根本没效果啦。这个时候就需要你自己选择合适的位置放置代码了。

如何放置代码?

WordPress 的外观是由主题 (theme) 实现的,所以代码必须放置在主题文件中,以WordPress默认主题为例,主题文件中比较重要的有:

索引页模板 index.php : 决定首页的内容;

文章页面模板 single.php :  决定单篇文章的内容;

文章索引模板 archive.php : 决定除首页外的其他页面的内容;

边栏模板 siderbar.php : 决定侧边栏的内容。

不同主题的文件可能不一样。

我启用了插件,却什么效果都没看到?

答:可能的原因:

你既没在后台勾选自动启动,也没有放置代码;

你第一次启动插件后,没有跑回首页点击几篇文章。根据插件工作原理,日志必须在插件安装被人点击访问一次才会生成缩略图,所以一开始可能没有缩略图,需要你点点自己的日志。

自动启用页面缩略图后发现没有效果,原因在于那个页面原来就没有显示文章内容或摘要,比如鸟类网的分类页面 大型涉禽 ,这个页面的每篇文章只显示了标题、作者、所属分类和标签,没有显示文章中的内容,而缩略图是必须自动插入到内容的,所以没有效果。怎么办?只能手动放置代码。

以上都不是,请在后台打开一篇本该出现图片的日志,检查该日志下的自定义域ta-thumbnail的值是多少,如果是 NoMediaFound(或者NoPicturesFound) ,说明插件没能成功提取图片,恭喜你,发现了一个bug,请拷贝一篇日志的html代码到我邮箱,以方便我查找原因。

我“新添加页面”,然后加入代码完全没有效果,不管是在“可视化”还是“HTML”代码里面?

答:那里不是放代码的地方!

目前来说,在后台“添加新页面”,在页面内容编辑框中加入代码是错误的,不管是放在“可视化”还是“HTML”都是错误的,插件代码必须放置在模板文件中!当然,我在插件下一版会考虑直接通过“添加新页面”的方式使插件生效。

那么如何创建类似鸟类网这样专门的图片页面呢?我在这篇文章中详细地说明了如何使用模板文件创建一个自定义页面:

http://niaolei.org.cn/wp-thumbnails/create_custom_page

我的页面缩略图出现两份一模一样的重复显示?

答:因为你既在后台勾选了自动启用页面缩略图,而且又在页面模板手动放置了代码,两个同时起作用了。所以请清除以前放过的代码,或者,后台不要勾选自动启用。

随机缩略图显示的数量不够?

答:比如你设置了6张,却只显示了2张。可能的原因:随机缩略图默认不显示视频缩略图。视频缩略图如果要在文章缩略图中显示,必须在后台勾选“视频缩略图随文章缩略图显示”。如果你纯图片(没有视频)的文章数超过了6篇,却最终显示少于6张图片,那么恭喜你找到一个bug,赶快反馈吧。

我的缩略图和标题之间间隔太大了?

答:这种情况只在IE6下出现,因为在缩略图后面,我使用了<br />来换行,以便在新的一行显示标题。在IE6下,这个换行符<br />有时会单独占一行,所以看起来缩略图和标题的间隔就很大了。如:

WP Thumbnails 的问题反馈

缩略图和标题间距过大,看起来很不协调。

最简单的解决办法:在插件后台将图片间距设大一点。如原来是10像素,改为20像素就行了,这样换行符会待在图片右边,而不是单独占一行。请看图片间距设大一点后的效果:

WP Thumbnails 的问题反馈

我想让标题宽度大于图片宽度,怎么弄?

答:很简单。后台将图片间距设得足够大,比如的图片是75像素,而你将间距设为25像素,那么最终标题宽度就是75+25=100像素。不过要注意,如果你在侧边栏显示,不要让标题宽度超过侧边栏宽度哦。

插件是不是太大了?

答:大有两方面:一是功能强大;二是臃肿高消耗。WP-Thumbnails功能极为强大,但一点也不臃肿,资源消耗非常少。虽然功能很多,但各个功能都是独立开来的,基本上任何一个功能,只要你没有用到它,它就不会占用资源。并不是像你所想像的,以为哪怕你只使用一种缩略图,都会把所有资源占用。

我担心插件消耗资源?

答:插件仅仅扫描一次日志,一劳永逸,非常高效,通过访问自定义域 ta-thumbnail 并自动填充维护该字段,大大减少了数据库访问,数据库访问开销几乎可以不计。

经常有人反馈说找不到缩略图,那是因为你是在发布文章之后才补充的图片,此时wp-thumbnails已完成对这篇文章的检测,之后再改动这篇文章,wp-thumbnails也不理会,此时只要删除该文章的自定义域ta-thumbnail,即可让插件重新检测到缩略图。

有人说这是wp-thumbnails的bug,我不这么认为。相反,我认为正是由于仅仅对每篇文章自动检测一次,才保持了插件的极低的数据库开销。

我不敢说 WP-Thumbnails 在所有博客上都速度飞快,毕竟大家主机环境各不相同。但以我鸟类网为例,一万多篇文章,超过十万张图片,WP-Thumbnails 速度非常快,我想,WordPress博客界,大概找不出几家文章数和图片数都超过鸟类网的吧。

可我还是发现有时速度很慢?

答:这种情况非常少见。如果你使用了外链图片,而且该外链图片所在网站无法连通,WP-Thumbnails 在第一次扫描日志时可能会消耗多一点时间用于下载远程图片。正如前面所说,插件只扫描一次,非常高效,扫描后不会影响网站速度。

我发现如果一篇文章中的图片超过20张,插件就会出错?

答:也许真的是图片太多了!

你在WP-Thumbnails后台将“缩略图来源 : 来自任意图片 (每篇日志至多提取20张)”改成 10张 以下,注意,即使你勾选了“来自第一张图片”,也需要将“每篇日志至多提取20张”改得尽可能小。

我发现打开单篇日志不会生成缩略图,必须在首页或分类/标签页面显示一次,才能生产缩略图?

答:你的日志模板文件single.php没有包含wp_head(一般的模板文件都会包含)。解决办法:在single.php的任意位置放置代码:<?php update_wp_thumbnails_meta(); ?>

什么是外链缩略图?

答:“外链图片/站外图片/远程图片”是指你的日志中使用了其他网站的图片,包括网络相册的图片。外链缩略图则是指直接调用Yupoo、Flickr、Picasa的缩略图。

相反的概念叫做“站内图片/本地图片”,也就是存在你自己网站的图片,包括你写日志上传的图片和FTP上传的图片。

为什么我的Yupoo缩略图变形了?

答:因为你选择了“使用外链缩略图”并且缩略图大小不是75*75,目前Yupoo只提供了75*75的正方形缩略图。Yupoo还提供宽度为100,240,500像素的保持原始比例的缩略图。

由缩略图打开大图时,我想实现幻灯片一样的效果?

答:这个效果叫做“lightbox”,请另外安装一个提供lightbox效果的插件,这样的插件非常之多,很容易找到。

插件不支持什么样的图片?

答:目前插件只支持三种后缀格式:jpg(包括jpeg)、gif、png,后缀可大写。

很抱歉不支持bmp和其他格式,bmp体积过大,不适合博客展示,请换用jpg图片。

另外:图片文件名中包含空格,标点符号,非英文字符的都无法识别。个人精力有限,只能满足最普遍的要求,请见谅。

能支持调用其他外链相册的缩略图吗?

答:除了Yupoo、Flickr、Picasa,其他一概不支持,当做普通的外链图片处理。这里推荐Yupoo的外链服务,60元/年的VIP,对一般博客来说,完全够用,希望国人能适应这种并不贵的收费服务。

其他外链相册的图片都先下载到本地,然后制作本地缩略图。

我用的相册插件 NextGen Gallery 插入的图片,为什么没有提取缩略图?

答:因为 NextGen Gallery 是用自己的标记插入的图片,没有带img标记,故WP-Thumbnails无法识别。未来WP-Thumbnails将增加对NextGen Gallery图片的识别。

我要放置两个不同设置的随机缩略图怎么办?比如我想在一个地方显示6张缩略图,在另一个地方显示10张缩略图?

答:必须手动放置带参数的代码,这个并不难。在插件用法说明中,有十分详细的说明。

我觉得图片的边框和样式都不好看,后台除了能调整在左右显示首页缩略图以及调整图片间距,还能调节什么?

答:调不了。如果你熟悉CSS的话,可以编辑插件下的样式文件style.css。

style.css文件控制缩略图的显示效果,比如标题文字大小、颜色,缩略图边框大小、颜色等等。

我的侧边栏图片不在中间,都歪到左边去了?

答:后台每种缩略图的设置中都有一个“图片间距”,这是一个非常重要的参数,把它调大,就可以把图片均匀地撑开,效果也就变得好看了。

我在wp-content/uploads下发现文件夹 ta-thumbnails-cache ?

答:插件自动生成两个文件夹,不要删啊:

wp-content/uploads/ta-thumbnails-cache: 用于保存本地缩略图片。

子文件夹TAdownload: 用于保存下载的远程缩略图片。

缩略图文件夹会不会占用很多空间?

答:取决于你使用了多少外链图片。ta-thumbnails-cache保存的是缩略图,不会占用太多空间。如果你空间很紧张,并且在后台你不再改动图片尺寸,那么可以删除 TAdownload 文件夹下的图片。后台提供了清理缩略图的选项。

后台有个选项:每篇日志最多提取多少张。默认是10张,空间非常紧张的博客,可以将这个数值设小一点,如3张。

我后台选择了只显示每篇日志的第一张图片,可发现ta-thumbnail的值有多张图片?

答:这不矛盾,一个是提取的图片数量,一个是显示出来的数量。

后台有个选项:每篇日志最多提取多少张,你可以改成1张。这个选项是一次性设置,改变之后只对新发布的日志起作用。

所以建议还是不要改成1,否则万一哪天你改成显示文章中任意图片或者显示全排列图片,却仍然只能显示一张。

我在本地测试你的插件,需要批量删除插件信息,重新测试,该怎么做?

答:插件后台最底部有丰富的选项用来清除数据库信息。

前两个安全:不会产生不良影响。

后三个慎用:

点击清理下载的远程文件:慎用!尤其是勾选过“自动将文章中的远程图片替换为本地图片, 本操作消耗资源比较大,慎用”这一选项的,千万不可以清理下载的图片,否则图片都会变叉叉。

点击清理自定义域:就是批量删除所有文章的自定义域ta-thumbnail,使插件重新检测和生成所有的缩略图。这个选项还是比较安全的。

点击彻底清理:慎用!建议不要用。除非你熟悉PHP,并且认真看了我插件的源代码,知道我这个选项是干什么的。

数据库中出现很多重复的项_edit_last, _edit_lock?

答:看仔细了,这些项并不重复,它们的post_id不一样!数据库出现很多_edit_last, _edit_lock的原因不是我插件造成的,WordPress会在编辑一篇日志或防止这篇日志被其他user编辑时,自动插入_edit_last, _edit_lock。

月光博客发表过一篇文章,优化数据库的:
DELETE FROM wp_postmeta WHERE meta_key = '_edit_lock';
DELETE FROM wp_postmeta WHERE meta_key = '_edit_last';

可是,有什么用处呢?下次只要你再次编辑日志的时候,wordpress又会自动为该日志插入_edit_last, _edit_lock。再说,清除_edit_last, _edit_lock之后真的能节省数据库空间吗?——微乎其微。

所以,完全不用担心这个问题。

我打开日志总是出现warning:failed to open stream: Permission denied 之类的文字?

答:哦,很抱歉,提示文字表明权限不够。请把wp-content/uploads文件夹下的ta-thumbnails-cache和它下面的子文件夹TAdownload的权限都设置成755。
把uploads文件夹下的ta-thumbnails-cache和它下面的子文件夹TAdownload的权限都设置成777把uploads文件夹下的ta-thumbnails-cache和它下面的子文件夹TAdownload的权限都设置成777。

我用过以前的版本,代码还需要改动吗?

答:一般不需要改动,WP-Thumbnails 是 Thumbnails Anywhere 的升级版,完全兼容Thumbnails Anywhere ,以前的代码仍然有效。

部分主题的首页缩略图在IE浏览器下变形压扁了?

答:的确有这样的问题。有极少数主题的首页缩略图效果,在IE浏览器被挤扁了。显然,这是CSS不兼容IE导致的,但我无法确定是通过修改WP-Thumbnails的CSS还是你的主题CSS来解决问题,因为我不熟悉CSS。

我建议你在主题文件index.php中手动选择一个合适的位置插入代码试试看,或者,呃,换个主题。ie的css兼容真的是一个很麻烦的问题,鸟类网的主题对ie支持比较好,没有压缩变形的问题。

请下载最新版本的插件,我在WP-Thumbnails 3.2.2版本尝试修正了这个css的问题。

你的插件不支持我的主题?

答:绝大部分主题都可以支持。但仍有部分主题高度定制化,使用了大量自定义的函数,自动启用没有效果。解决办法:

1、换主题

2、手动放置代码

请注意,你不能要求我的插件兼容主题,只有主题兼容插件的说法。

为什么不及时回复我的留言?

答:原因有三:

1、我的精力有限;

2、你描述不清,虽然反馈了问题,但是没有遵守我在本文开头介绍的反馈方式,或者没有提供任何有用的信息,导致我根本无法排查原因;有时候我完全看不懂你说的话(猜了3分钟还猜不到你的意思),所以我就懒得理你喽。(凡是我没有回复的问题,99%属于这个原因。)

3、我没有义务。

Leave a Reply