📜  acf 图像显示 id 而不是 url (1)

📅  最后修改于: 2023-12-03 15:29:17.181000             🧑  作者: Mango

使用 ACF 插件在 WordPress 中实现使用 ID 显示图片

Advanced Custom Fields(ACF)是一款广受欢迎的 WordPress 插件,可帮助网站管理员在文章、页面和自定义类型的 WordPress 后台,轻松地添加自定义字段。其中一个常见的用例是添加一个添加/选择媒体字段类型,以使管理员可以轻松地与文章或页面相关的图片进行管理。

然而,问题是管理员通常只知道其媒体 ID,而不知道其 URL,这时如何在主题或插件中使用这个 ID 来显示图像呢?本文介绍如何使用 ACF 插件,在 WordPress 中使用 ID 而不是 URL 显示图像。

在介绍实现的过程之前,我们先来看一下使用 ACF 插件创建添加/选择媒体字段类型的步骤。

添加/选择媒体字段类型
  1. 在 WordPress 后台,打开 ACF 插件的“字段组”页面(即“新增字段组”菜单)。
  2. 创建一个新的 ACF 字段组。
  3. 选择一个包含媒体的字段类型,例如“添加/选择媒体”。
  4. 将此字段添加到您的字段组中,然后将其放置在您希望它出现的位置。

现在,在文章或页面编辑页面上,您将看到您刚刚添加的媒体字段,管理员可以通过选择媒体库中的图像将其添加到文章或页面中。

使用 ID 而不是 URL 显示图像

为了在您的主题或插件中使用 ID 而不是 URL 来显示图像,您需要做以下几个步骤:

  1. 将 ID 存储在文章/页面的 post meta 中。
  2. 获取 post meta 中的 ID。
  3. 使用 WordPress 提供的函数 wp_get_attachment_image() 将其转换为图像标记。

以下是一个完整的示例代码,可以将其添加到您当前正在开发中的主题或插件中。请将此代码片段保存为 PHP 文件,并将其添加到您的主题或插件文件夹中。请记住,代码可能需要根据您的字段名称和 ID 存储位置进行自定义。

<?php
// 获取媒体 ID 存储在文章/页面中
$image_id = get_post_meta( get_the_ID(), 'your_image_field_name', true );

// 检查是否存在 ID,如果没有则输出默认图像
if ( ! $image_id ) {
    echo '<img src="' . esc_url( get_stylesheet_directory_uri() ) . '/default-image.jpg" />';
} else {
    // 将 ID 转换为图像标记
    echo wp_get_attachment_image( $image_id, 'full' );
}
?>

在上面的代码中,我们使用 wp_get_attachment_image() 函数将 ID 转换为图像标记,并为图像大小指定“full”。您可以使用不同的图像大小,具体取决于您的需要。

总之,ACF 插件可以大大简化管理网站中的自定义字段并与媒体项进行交互,而使用 ID 而不是 URL 显示图像仍然很容易,并且可以轻松地将其添加到您的 WordPress 主题或插件中。