WordPress插件可正确获取LinkedIn JSON数据但前端无缩略图显示的问题求助
WordPress插件可正确获取LinkedIn JSON数据但前端无缩略图显示的问题求助
看起来你已经走通了前两步(拉取20条帖子、筛选出带图片的5条),但卡在了获取图片URL或者生成前端HTML的环节。结合你的代码和描述,我给你梳理几个大概率的问题点和排查方向:
1. 先排查「获取图片URL的API请求」是否真的成功
你代码里如果asset请求失败或者拿不到图片URL,就直接continue跳过了,所以前端自然看不到内容。先给这部分加日志,看看具体哪里出问题:
foreach ( $image_posts as $item ) { // 先去掉rawurlencode,URN可以直接放在路径里,编码反而可能导致识别失败 $asset_endpoint = "https://api.linkedin.com/v2/assets/" . $item['asset_urn'] . "?action=retrieveMedia"; $asset_resp = wp_remote_get( $asset_endpoint, [ 'headers' => [ 'Authorization' => 'Bearer ' . $token, 'X-Restli-Protocol-Version' => '2.0.0', 'LinkedIn-Version' => '202505', ], 'timeout' => 20, ] ); // 加日志查看请求是否失败 if ( is_wp_error( $asset_resp ) ) { error_log( "LinkedIn图片API请求失败: " . $asset_resp->get_error_message() ); continue; } $asset_body = json_decode( wp_remote_retrieve_body( $asset_resp ), true ); // 把返回的结构打日志,确认LinkedIn给的实际数据格式 error_log( "图片API返回结构: " . print_r( $asset_body, true ) ); $img_url = ''; // 这里是核心坑点!LinkedIn的retrieveMedia返回的是包在value里的,不是elements数组 if ( ! empty( $asset_body['value']['identifiers'][0]['identifier'] ) ) { $img_url = $asset_body['value']['identifiers'][0]['identifier']; } if ( ! $img_url ) { error_log( "没拿到图片URL,跳过这条: " . $item['asset_urn'] ); continue; } // 后面的链接、HTML生成代码不变... }
2. 重点修正:LinkedIn v2 API的返回结构
你之前用$asset_body['elements'][0]['identifiers'][0]['identifier']是错误的!retrieveMedia接口返回的单个资产数据是包裹在value字段中的,elements数组一般是批量查询场景下才会用到。这大概率是你拿不到图片URL的主要原因。
3. 确认LinkedIn Token的权限
你的access token必须包含读取组织媒体资源的权限,比如r_organization_social或者rw_organization_admin。如果权限不足,图片API会返回403错误,导致你拿不到数据。可以去LinkedIn开发者后台的应用中,确认权限是否已申请通过,且当前token包含这些权限。
4. 最后检查生成的HTML是否为空
在循环结束后,加个日志看看最终生成的HTML内容:
error_log( "最终生成的HTML: " . $html );
如果日志里只有<div class="blp-posts-grid" ...>的开头和结尾标签,说明循环里的所有item都因为拿不到图片URL被跳过了,那重点就回到上面的1、2、3步排查。
按照这个思路排查,应该就能快速定位到前端无内容的原因了!
内容来源于stack exchange
相关产品推荐
相关产品推荐

