博客 / WordPress/ WordPress 无插件教程:自动为文章图片添加 alt 和 title 属性

WordPress 无插件教程:自动为文章图片添加 alt 和 title 属性

WordPress 无插件教程:自动为文章图片添加 alt 和 title 属性

为什么需要为图片添加 alt 和 title 属性?

在 WordPress 网站优化中,为图片添加 alt(替代文本)和 title(标题)属性是提升网站可访问性和搜索引擎优化(SEO)的重要环节。

  • SEO 优化alt 属性帮助搜索引擎理解图片内容,是图片搜索排名的重要依据。
  • 可访问性:屏幕阅读器会朗读 alt 文本,帮助视障用户理解图片信息。
  • 用户体验:当图片无法加载时,alt 文本会显示在图片位置;鼠标悬停时,title 属性会显示提示信息。

手动为大量图片添加这些属性非常耗时。虽然存在插件可以自动处理,但通过代码实现是更轻量、高效且无需依赖第三方插件的方法。

通过代码自动为文章图片添加 alt 和 title 属性

将以下 PHP 代码添加到您当前 WordPress 主题的 functions.php 文件末尾即可。此代码会为文章正文中的所有图片链接自动添加属性。

/**
 * 自动为文章内容中的图片添加 alt 和 title 属性
 * @param string $content 文章内容
 * @return string 处理后的文章内容
 */
add_filter('the_content', 'wukongso_auto_image_attrs');
function wukongso_auto_image_attrs($content) {
    global $post;
    // 匹配文章内容中的图片链接标签
    $pattern = '/<a(.*?)href=(['"])(.*?).(bmp|gif|jpeg|jpg|png|webp)(2)(.*?)>/i';
    // 替换为包含 alt 和 title 属性的新标签,属性值为文章标题
    $replacement = '<a$1href=$2$3.$4$5 alt="' . esc_attr($post->post_title) . '" title="' . esc_attr($post->post_title) . '"$6>';
    $content = preg_replace($pattern, $replacement, $content);
    return $content;
}

代码说明与注意事项

  • 功能:此函数会扫描文章内容,找到所有指向图片(如 .jpg, .png, .webp 等)的 <a> 标签,并为其添加 alttitle 属性,属性值均设置为当前文章的标题。
  • 安全性:代码中使用了 esc_attr() 函数对文章标题进行转义,防止特殊字符引起 HTML 或安全问题,这比原始代码更安全。
  • 适用范围:此方法仅处理通过文章编辑器插入的、由 <a> 标签包裹的图片。对于作为“特色图像”或通过主题模板直接调用的图片无效。
  • 效果验证:添加代码后,请清空网站缓存,然后打开任意一篇文章。在浏览器中右键点击图片并选择“检查”(或“查看元素”),即可在 <a> 标签中看到已添加的 alttitle 属性。

进阶优化建议

上述基础方案将所有图片的 alt/title 都设置为文章标题。对于 SEO 而言,更精细化的方案是使用图片本身的描述性信息。您可以考虑以下优化方向:

  1. 使用图片文件名:修改代码,从图片 URL 中提取文件名(去除后缀和连接符)作为属性值,这通常更具描述性。
  2. 结合文章摘要:如果文章标题不够具体,可以使用文章摘要(Excerpt)或前几个字作为备选。
  3. 自定义字段:为文章创建专门的“图片关键词”自定义字段,为代码提供更精准的属性值。

通过这段简单的代码,您可以有效提升网站的 SEO 基础评分和可访问性,而无需安装任何额外插件,保持网站的高效运行。

发表评论

您的邮箱不会公开。必填项已用 * 标注。