今天无意打开博客相册,发现最近文章里的图片没有获取到,仅是最近一篇文章里的,所以我猜是那篇文章的问题。我依稀记得当时是先上传图片到媒体库,然后插入到文章里的。难道这还有区别?果然,我发现了不一样。
这就过分了。所以说需要数据库支持的相册就是很麻烦。我不能一个个删掉再重新上传吧。那只能修改数据库咯。
查找数据库
媒体和文章一样,都在wp_posts表里,sql查询可得:
Select * from wp_posts where post_type = 'attachment';
最多显示500条,你可以导出来看,我就是这么干的,然后用文本编辑器打开都能看。
经过对比,可以看出在post_parent字段,就是显示图片插到哪篇文章ID下,如果显示为0,那说明只是在媒体库里,不在文章中显示,这样wp_get_attachment_image_src也就获取不了。
修改数据库
知道原因了就好修改了,一种方法是直接在phpmyadmin下用上面的查询代码找出来,一个个修改;一种可以用sql语句批量修改。但修改前,必须得备份数据库,数据无价。
sql语句:
UPDATE `wp_posts` SET `post_parent` = '文章ID' WHERE `wp_posts`.`ID` BETWEEN 文章ID起始 AND 文章ID结束 AND `wp_posts`.`post_parent` = 0;
其他问题
但是改了之后,相册是正常了,wp_get_attachment_image_src函数也能获取了,但是查看媒体库里的照片时,还是没有显示上传至哪篇文章下,如第一张图片。
另外在wp_postmeta表里找到相应的缩略图信息,可以用sql筛选一下:
SELECT * FROM `wp_postmeta` WHERE meta_key IN ('_wp_attached_file', '_wp_attachment_backup_sizes', '_wp_attachment_metadata', '_thumbnail_id')
貌似没找到相应的设置字段。知道的童鞋麻烦告知一下,不过到此问题是解决了,虽然不是很完美。通过sql修改数据,不是经常干,稳妥一些,切记一定要先备份数据库,切记!!!
参考文章:
①https://cloud.tencent.com/developer/information/mysql%E4%BF%AE%E6%94%B9%E5%AD%97%E6%AE%B5%E5%80%BC
②https://doc.weixiaoduo.com/wordpress/4468.html
本文链接: wp_get_attachment_image_src获取不到文章附件?
我本来以为上传到wp里面的图片好处理。后来发现不好处理。数据库搜索的不全,不知道为啥,我又经常换域名。导致好多图都有问题。我也不管了。看看图床是不是好处理。我继续观察。
1个月前 · 临沂 · Google Chrome 131 Windows 10
@acevs 一般情况下,不会去大修大改的,出现这种情况,也是少数了。
经常换域名的,也可以用sql语句更新域名的。
1个月前 · 合肥 · Firefox 133 Windows 10
@皇家元林 还有第三方发布工具也会导致图片链接问题。之前也用过不少第三方的。如果没有话估计好处理一点。
1个月前 · 青岛 · Google Chrome 131 Windows 10
@acevs 嗯嗯,现在貌似没有第三方工具能发WordPress了吧
1个月前 · 合肥 · Firefox 133 Windows 10
媒体库与文章中上传有些区别,文章中上传会建立附属关系。
1个月前 · 东莞 · Google Chrome 131 Windows 10
@粽叶加米 对对,就是这个情况。
1个月前 · 合肥 · Firefox 133 Windows 10
wp的附件处理的确很麻烦
1个月前 · 青岛 · Google Chrome 130 Windows 10
@obaby 是的,其实我就想原图上传,可他偏偏给我弄个缩略图。关了都不行。
另外,你的站好像挂了。。。
1个月前 · 合肥 · Firefox 133 Windows 10
@皇家元林 没挂啊,naigou 是国外的节点。
1个月前 · 青岛 · Google Chrome 130 Windows 10
@obaby 啊~~~原来是小日本的节点。。。
现在好了,刚才504错误!
1个月前 · 合肥 · Firefox 133 Windows 10
WP越来越臃肿
1个月前 · 枣庄 · Firefox 133 Windows 10
@krwater 是的,不过确实很强大。只是简单写个博客,确实不用那么强大。
1个月前 · 合肥 · Firefox 133 Windows 10
ty的文件管理更是个迷,所以我自建了图床。
1个月前 · 漯河 · Microsoft Edge 131 Windows 10
@网友小宋 好像MD编辑器都是用图床的吧。其实直接吧图片丢到一个文件夹里,给他绑个域名就是图床了。
1个月前 · 合肥 · Firefox 133 Windows 10
你这条update语句有风险。一是应该加上post_type = ‘attachment’,另外还要加一个post_mime_type = ‘image/jpeg’。因为图片是文章附件,但文章附件不一定是图片。
编辑post_meta的办法是调用add_meta_box,自己画一个编辑框.重点是实现第三个参的回调函数。1)用get_post_meta把想要的内容取出来。2)画一个input和一个button。3)把取出来的东西放到edit里。4)写js或者用wp自带的方法实现提交功能。
我记得好像有现成的编辑任意metakey的例子。不然我从哪抄的。
27天前 · 奥克兰 · Microsoft Edge 131 Windows 10
@大致 额…加上应该也可以,只是我这个 update 条件是数据库 id 区间之间的,数据库 id 应该是唯一的,对,草率了,我写成了文章 id 了,这些图片附件不在文章里,何来文章 id。
另外你说的 post_meta 是说的我这个图片归属问题吗?我有点没看懂。
26天前 · 六安 · Wordpress App 25 iPhone iOS 18.2
@皇家元林 你不是想在wp_postmeta里进行修改吗?还是我理解错了,你是想找attach图片与主post的那条关系?
26天前 · 大连 · Firefox 133 Windows 10
@大致 其实我不知道在哪改,猜测是在 postmata 里。看到文章第一张图片标红的位置没,在第二张图片就没有,即使改了归属文章,也没有。
26天前 · 六安 · Wordpress App 25 iPhone iOS 18.2
@大致 你这个 ip 地址是奥克兰的,是人在那边,还是用了代理?
26天前 · 六安 · Wordpress App 25 iPhone iOS 18.2
@皇家元林 是代理。凡是有IP归属地显示的博客,我都挂代理留言。以那个傻叉省份为耻。不过你这里是直接到城市就没关系,等我哪天想起来给你单独建个分类吧。
26天前 · 大连 · Firefox 133 Windows 10
@大致 不用不用,我只是好奇。反正这个归属地也不准确,无所谓的。
26天前 · 六安 · Wordpress App 25 iPhone iOS 18.2
就是_thumbnail_id啊。
26天前 · 大连 · Firefox 133 Windows 10
挺深奥的,没有学习到这个。
22天前 · 嘉兴 · Google Chrome 122 Windows 10
@织梦岁月 希望用不到,这也是没办法的事儿。
22天前 · 合肥 · Firefox 133 Windows 10