acf_get_attachment()


WordPress関数acf_get_attachment()は、添付ファイルのデータを取得するために使用されます。この関数は、特にAdvanced Custom Fieldsプラグインと組み合わせて使用されることが多いです。

構文

acf_get_attachment( mixed $attachment );
  • $attachment (mixed) — 添付ファイルのIDまたは添付ファイルオブジェクトを指定します。

例 1: 添付ファイルデータを取得

添付ファイルのIDを指定して、データを取得します。

<?php 
$attachment_id = get_post_thumbnail_id( get_the_ID() );
$attachment_data = acf_get_attachment( $attachment_id );
print_r( $attachment_data );
?>

例 2: カスタムフィールド内の添付ファイルデータを取得

ACFのカスタムフィールドに保存された添付ファイルIDを使用してデータを取得します。

<?php 
$attachment_id = get_field( 'custom_attachment_field' );
$attachment_data = acf_get_attachment( $attachment_id );
echo $attachment_data['url'];
?>

例 3: 投稿のアイキャッチ画像を取得

投稿に設定されたアイキャッチ画像の添付ファイルデータを取得します。

<?php 
if ( has_post_thumbnail( get_the_ID() ) ) {
    $attachment_id = get_post_thumbnail_id( get_the_ID() );
    $attachment_data = acf_get_attachment( $attachment_id );
    echo $attachment_data['url'];
}
?>

例 4: 添付ファイルオブジェクトを直接使用

添付ファイルオブジェクトを渡してデータを取得します。

<?php 
$attachment = wp_get_attachment_metadata( $attachment_id );
$attachment_data = acf_get_attachment( $attachment );
echo $attachment_data['title'];
?>

例 5: 複数の添付ファイルをループで処理

複数の添付ファイルをループで処理して、それぞれのデータを取得します。

<?php 
$attachments = get_posts( array(
    'post_type' => 'attachment',
    'post_parent' => get_the_ID(),
    'posts_per_page' => -1,
) );

foreach ( $attachments as $attachment ) {
    $attachment_data = acf_get_attachment( $attachment->ID );
    echo $attachment_data['url'];
}
?>

注意事項:

  • $attachmentに無効な値を渡すと、返り値が空になる場合があります。