以编程方式获取附件 Alt 文本、标题、描述和名称

可能是平时使用的比较少、不熟练的原因,开发 WordPress 主题或插件过程中,每次使用 WordPress 附件时,我总是需要查文档才能弄清楚附件的一些数据需要怎么样获取,比如:

  • alt文本怎么获取?
  • 怎么获取图片标题?

为了不再到处找文档,我把获取 WordPress 图片附件数据的方法总结到了本文中,希望能对你也有所帮助。本文主要记录了如何以编程方式获取以下附件数据:

WordPress attachment information – alt text, caption, title and description

如何获取附件的 Alt 文本

由于图片的 alt 文本存储在文章元数据中,因此我们可以使用get_post_meta()函数:

$alt_text = get_post_meta( $image_id, '_wp_attachment_image_alt', true );

如何获取标题

标题、字幕描述WP_Post对象的一部分,我们在这里可以选择使用 get_post_fieldget_post 函数来获取。

$title = get_post_field( 'post_title', $image_id );

如何获取附件标题

$caption = get_post_field( 'post_excerpt', $image_id );

如何获取附件说明

$description = get_post_field( 'post_content', $image_id );

这到底是如何工作的?

我们知道,WordPress 中的媒体文件只是一种自定义文章类型「attachment」,这意味着:

  • 附件在 WordPress 数据库中没有单独的表,附件数据存储在wp_postswp_postmeta表中。
  • 要处理附件,我们可以使用与处理普通 WordPress 文章时相同的函数,例如get_posts()get_post()、get_post_meta()等。

现在,让我们尝试将多次使用 get_post_field函数替换为一次使用get_post函数(不过不用担心性能问题,我们也以多次使用 get_post_field,因为WP_Post对象是有缓存的)。

$attachment = get_post( $image_id );

// 从 WP_Post 对象轻松获取附件标题
$title = $attachment->post_title;

// 获取标题
$caption = $attachment->post_excerpt;

// 获取描述
$description = $attachment->post_content;

// 获取 Alt 文本时,我们仍然需要使用 get_post_meta() function
$alt_text = get_post_meta( $image_id, '_wp_attachment_image_alt', true );

其实,WordPress 为我们提供了丰富的数据获取函数来帮我们实现自定义开发,只要知道了 WordPress 中的数据存储在哪个数据表中,获取这些数据的方法就显而易见了。

Related Posts

发表回复

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