media_sideload_image()


WordPress関数media_sideload_image()は、外部の画像を指定した投稿に添付ファイルとしてインポートし、その画像を投稿内で表示するために使用されます。この関数は、テーマやプラグインで画像を動的に取得し、管理画面に手動でアップロードする手間を省きます。

構文

media_sideload_image( string $file, int $post_id, string $desc = null, string $return = 'html' );

引数の説明

  • $file (string) — インポートする画像のURL。
  • $post_id (int) — 添付先の投稿ID。
  • $desc (string, オプション) — 添付ファイルの説明。
  • $return (string, オプション) — 戻り値の形式。’html’, ‘src’, ‘id’のいずれか。

例1: 投稿に画像を添付する

外部画像を投稿に添付し、投稿内で画像を表示します。

<?php
$post_id = get_the_ID();
$image_url = 'https://example.com/image.jpg';
media_sideload_image( $image_url, $post_id );
?>

例2: 投稿IDを動的に取得して画像を添付

現在の投稿のIDを取得し、画像を添付します。

<?php
$image_url = 'https://example.com/image.jpg';
media_sideload_image( $image_url, get_the_ID() );
?>

例3: 画像のURLを取得する

画像のURLだけを取得して使用します。

<?php
$image_url = 'https://example.com/image.jpg';
$image_src = media_sideload_image( $image_url, get_the_ID(), null, 'src' );
echo '<img src="' . esc_url( $image_src ) . '" alt="Image">';
?>

例4: 添付ファイルIDを取得する

添付ファイルIDを取得して他の関数で利用します。

<?php
$image_url = 'https://example.com/image.jpg';
$attachment_id = media_sideload_image( $image_url, get_the_ID(), null, 'id' );
wp_update_attachment_metadata( $attachment_id, wp_generate_attachment_metadata( $attachment_id, get_attached_file( $attachment_id ) ) );
?>

例5: カスタム投稿タイプに画像を添付

カスタム投稿タイプの投稿に画像を添付します。

<?php
$post_id = wp_insert_post( array( 'post_title' => '新しい投稿', 'post_type' => 'custom_post_type', 'post_status' => 'publish' ) );
$image_url = 'https://example.com/image.jpg';
media_sideload_image( $image_url, $post_id, 'カスタム投稿用の画像' );
?>

注意事項

  • media_sideload_image()を使用する際、外部URLから画像をダウンロードするため、サーバーに負荷がかかる可能性があります。
  • 画像のURLが無効である場合、エラーが発生することがあります。例外処理を実装することをお勧めします。
  • 戻り値の形式を指定しない場合、デフォルトでHTMLタグが返されます。

関連機能: