media_handle_sideload()


WordPress関数media_handle_sideload()は、外部ソースからファイルをダウンロードし、そのファイルをWordPressメディアライブラリにアップロードするために使用されます。この関数は主にカスタムアップローダーやプラグインで利用されます。

構文

media_handle_sideload( array $file_array, int $post_id, string $desc = null, array $post_data = array() )

引数の説明:

  • $file_array (array) — アップロードするファイルの配列。
  • $post_id (int) — 添付ファイルを関連付ける投稿のID。
  • $desc (string) — ファイルの説明(オプション)。
  • $post_data (array) — カスタム投稿データ(オプション)。

使用例

例 1. URLから画像をアップロード

指定されたURLから画像をダウンロードし、投稿に添付します。

<?php
$file = array(
    'name' => basename( 'https://example.com/image.jpg' ),
    'tmp_name' => download_url( 'https://example.com/image.jpg' )
);
$post_id = 0;
$attachment_id = media_handle_sideload( $file, $post_id );
?>

例 2. エラーチェック付きのファイルアップロード

ファイルアップロード時にエラーチェックを追加します。

<?php
$file = array(
    'name' => basename( 'https://example.com/image.jpg' ),
    'tmp_name' => download_url( 'https://example.com/image.jpg' )
);
$post_id = 0;
$attachment_id = media_handle_sideload( $file, $post_id );
if ( is_wp_error( $attachment_id ) ) {
    echo 'エラー: ' . $attachment_id->get_error_message();
}
?>

例 3. 投稿に画像を添付し説明を追加

画像に説明を追加して投稿に関連付けます。

<?php
$file = array(
    'name' => basename( 'https://example.com/image.jpg' ),
    'tmp_name' => download_url( 'https://example.com/image.jpg' )
);
$post_id = 123;
$attachment_id = media_handle_sideload( $file, $post_id, 'この画像の説明です。' );
?>

例 4. カスタム投稿データを設定してアップロード

ファイルのカスタム投稿データを設定します。

<?php
$file = array(
    'name' => basename( 'https://example.com/image.jpg' ),
    'tmp_name' => download_url( 'https://example.com/image.jpg' )
);
$post_id = 0;
$post_data = array(
    'post_title' => 'カスタムタイトル',
    'post_content' => 'カスタムコンテンツ'
);
$attachment_id = media_handle_sideload( $file, $post_id, null, $post_data );
?>

例 5. マルチメディアファイルのアップロード

画像以外のファイル(例: PDF)をアップロードします。

<?php
$file = array(
    'name' => basename( 'https://example.com/document.pdf' ),
    'tmp_name' => download_url( 'https://example.com/document.pdf' )
);
$post_id = 0;
$attachment_id = media_handle_sideload( $file, $post_id );
?>

注意事項

  • download_url()を使用する場合は、一時ファイルを削除する必要があります。

関連機能: