wp_maybe_generate_attachment_metadata()


WordPress関数wp_maybe_generate_attachment_metadata()は、指定されたファイルの添付ファイルメタデータをまだ生成されていない場合に生成するための関数です。

構文

wp_maybe_generate_attachment_metadata( int $attachment_id );
  • $attachment_id (int) — 添付ファイルのID。

例1: 添付ファイルメタデータの生成

以下のコードは、指定された添付ファイルIDに基づいてメタデータを生成します。

<?php wp_maybe_generate_attachment_metadata( get_the_ID() ); ?>

例2: 投稿内の最初の添付ファイルのメタデータ生成

投稿内の最初の添付ファイルに対してメタデータを生成するコードです。

<?php
$attachments = get_attached_media( 'image', get_the_ID() );
if ( ! empty( $attachments ) ) {
    $first_attachment = reset( $attachments );
    wp_maybe_generate_attachment_metadata( $first_attachment->ID );
}
?>

例3: カスタムフィルターでの使用

このコードは、カスタムフィルターを追加して添付ファイルのメタデータを処理します。

<?php
add_filter( 'wp_generate_attachment_metadata', function( $metadata, $attachment_id ) {
    // カスタム処理をここに追加
    return $metadata;
}, 10, 2 );

wp_maybe_generate_attachment_metadata( get_the_ID() );
?>

例4: アップロード完了後のメタデータ生成

ファイルアップロード完了時にメタデータを自動生成します。

<?php
add_action( 'add_attachment', function( $attachment_id ) {
    wp_maybe_generate_attachment_metadata( $attachment_id );
} );
?>

例5: 添付ファイルメタデータのデバッグ

このコードは、添付ファイルのメタデータを取得して表示します。

<?php
$metadata = wp_get_attachment_metadata( get_the_ID() );
if ( ! $metadata ) {
    wp_maybe_generate_attachment_metadata( get_the_ID() );
    $metadata = wp_get_attachment_metadata( get_the_ID() );
}
var_dump( $metadata );
?>

注意事項

  • wp_maybe_generate_attachment_metadata()は、添付ファイルが適切に登録されていない場合は動作しません。
  • この関数は、通常、画像ファイルに対して使用されますが、他のタイプのファイルには適用されない場合があります。

関連機能: