You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WordPress内容提交故障:爬取的多图/视频仅存单个结果的解决方法

解决WordPress仅存储第一个图片/视频的问题

我一眼就看出问题所在了——你当前的代码每次循环都在覆盖$thecontent变量,而不是把所有图片和视频的HTML内容累加起来。另外,你用htmlspecialchars()转义HTML的操作也可能导致WordPress显示纯文本标签而非渲染元素,这部分也需要调整。

下面是修复后的完整方案:

1. 先初始化内容容器

在开始解析图片和视频之前,先把$thecontent初始化为空字符串,这样后续可以不断往里面追加内容:

$thecontent = ''; // 初始化空字符串,用来累加所有图片和视频的HTML

2. 修改图片循环:追加内容而非覆盖

把原来的赋值语句改成追加模式(用.=运算符),同时去掉htmlspecialchars()——因为WordPress需要原始HTML来渲染图片,转义后的内容只会显示成纯文本标签:

foreach ($html2->find('.entry-content img') as $image) { 
    $imageurl = $image->src; 
    $new = '<img src="' . $imageurl . '" style="height: auto; width: 100%;margin-bottom: 3px;">'; 
    $thecontent .= $new . '<br>'; // 把当前图片的HTML追加到总内容里,加上换行
    // 如果需要调试打印,单独用 print $new; 即可,不要转义
}

3. 视频循环做同样的修改

视频部分也是一样的逻辑,确保每一个视频的HTML都被追加到总内容中:

foreach ($html2->find('iframe') as $video) { 
    $videourl = $video->src; 
    $new = '<iframe src="' . $videourl . '" scrolling="no" frameborder="0" width="100%" allowfullscreen="true" webkitallowfullscreen="true" mozallowfullscreen="true"></iframe>'; 
    $thecontent .= $new . '<br>'; // 追加当前视频的HTML和换行
}

4. 保持WordPress存储代码不变

现在$thecontent已经包含了所有图片和视频的完整HTML内容,直接赋值给$content提交给WordPress即可:

$content = $thecontent; 
$my_post = array( 
    'post_title' => wp_strip_all_tags( trim( $title ) ), 
    'post_content' => $content, 
    'post_status' => 'publish', 
    'post_author' => 2, 
    'post_category' => array(2), 
    'post_date' => date('Y-m-d H:i:s') 
); 
$post_id = wp_insert_post( $my_post ); 
remove_filter('content_save_pre', 'wp_filter_post_kses'); 
remove_filter('content_filtered_save_pre', 'wp_filter_post_kses');

关键原因解释

  • 你之前只看到第一个图片,是因为每次循环都用$thecontent = ...把之前的内容彻底覆盖了,最后$thecontent只保留了最后一次循环的结果。如果调试时print能看到所有内容,说明循环是正常的,只是存储时没把所有内容攒起来。
  • htmlspecialchars()是用来把HTML转义成纯文本的,适合在页面上打印源码调试,但不能把转义后的内容存到WordPress里,否则会显示<img ...>这样的文本,而不是实际的图片。

内容的提问来源于stack exchange,提问作者The Local Peon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:09:16