当前位置:首页教程中心B2 主题圈子发图片不显示?不用插件,改两处就能修好

B2 主题圈子发图片不显示?不用插件,改两处就能修好

在圈子发带图的帖子,帖子发出去了,图片不显示,但媒体库里明明能找到这张图。这个问题重我升级了5.9.0版本就一直存在,当时问同样使用该版本的有没问题,对方说没有这个问题,所以我就不太清楚就我的有问题还是别人都有,当时也没去找问题出在哪里,今天刚好逛圈子才想起这个问题没解决,索性看一下问题出在哪里。

B2 主题圈子发图片不显示?不用插件,改两处就能修好

原因:

根据查找和分析,主题里有两处前后对不上,都在同一个文件里:

第一处:判断写错了(Circle.php 第 1135 行)
打个比方:权限名单写的是「图片:允许、视频:允许」,程序却拿「图片」这两个字
去跟「允许」比对——当然永远对不上。结果整个图片处理流程被直接跳过。
第二处:两边要的东西不一样(Circle.php 第 1156 行)
后端要的是 data.link,前端上传成功后只写了 id,压根没有 data.link。
所以就算第一处修好了,还是取不到值。两处都得改。

下面是我提供的几种修复方案,需要的可以拿走。

方案一:添加到func.php文件

文件路径:/wp-content/themes/b2Jitheme/func.php  (这个文件是我在子主题自己添加的,主题升级不会被覆盖。)

添加下面代码到func.php底部保存:开了页面缓存(宝塔 nginx 缓存 / Redis)就清一下,然后重新发个带图测试帖。

方案二:直接改主题源码

文件路径:/wp-content/themes/b2/Modules/Common/Circle.php  (这是父主题的文件,主题一升级就会被覆盖,改了得自己记着。当然作者自己修复了也不一定)

改第一处(第 1135 行)

找到:

if (in_array($k, $allow['media_role'])) {

改成:

改第二处(第 1156 行)

找到:

if (isset($_v['data']['link']) && $_v['data']['link']) {
    $list[$k][] = $_v['data']['link'];
}

改成:

注意:老帖子不会自动恢复,修好只对以后发的帖子有效,之前的图片当时就没存进去,只能人工补。

温馨提示:

文章标题:B2 主题圈子发图片不显示?不用插件,改两处就能修好

文章链接:https://www.muooy.cn/15812.html

更新时间:2026年10月13日

1.本站大部分内容均收集于网络!若内容若侵犯到您的权益,请发送邮件至:305582964@qq.com,我们将第一时间处理!

2.资源所需价格并非资源售卖价格,是收集、整理、编辑详情以及本站运营的适当补贴,并且本站不提供任何免费技术支持。

3.所有资源仅限于参考和学习,版权归原作者所有,更多请阅读用户协议和免责声明。

给TA打赏
共{{data.count}}人
人已打赏
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧