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

如何简化获取WordPress文章附件图片源的PHP代码并实现快捷调用

WordPress第二张附件图片提取封装方案

第一步:添加自定义函数

建议将以下代码放入你当前使用主题的functions.php文件(全局加载,所有模板都可调用),如果你坚持要放在header.php中,放在文件最顶部的PHP代码块内即可:

function harukunt($post_id = null) {
    // 未传入文章ID时默认读取全局当前文章ID
    if (empty($post_id)) {
        global $post;
        $post_id = $post->ID;
    }
    // 获取该文章所有附件图片
    $images = get_attached_media('image', $post_id);
    if (empty($images)) return '';
    // 排除特色图片
    $featured_id = get_post_thumbnail_id($post_id);
    if ($featured_id && isset($images[$featured_id])) {
        unset($images[$featured_id]);
    }
    if (empty($images)) return '';
    // 读取排除特色图后的第一张附件大图地址
    $img_info = wp_get_attachment_image_src(key($images), 'large');
    return $img_info ? $img_info[0] : '';
}

第二步:模板内调用

在需要输出图片的位置直接调用即可,有两种调用场景:

  • 主循环内/当前文章上下文调用,不需要传参数:
    <img src="<?php echo harukunt(); ?>" alt="文章图片">
    
  • 自定义循环/指定文章ID调用,传入对应文章ID即可:
    <img src="<?php echo harukunt($post->ID); ?>" alt="文章图片">
    

优化说明

  • 新增了空值判断,避免文章没有附件图片、排除特色图后无剩余图片时抛出PHP警告
  • 支持自定义传入文章ID,兼容非主循环的调用场景
  • 函数直接返回图片地址字符串,无需额外处理

内容的提问来源于stack exchange,提问作者D. Dragon

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 04:54:09