一般

WordPressでは、画像、動画、音声ファイルなど、さまざまなメディアをアップロード、保存、表示できます。メディアは、管理画面メディア > 新規追加から、または投稿/ページエディタの「メディアを追加」ボタンを使用してアップロードできます。

編集画面内でメディアファイルがアップロードされると、それは自動的に現在作成または編集中の投稿に添付されます。メディアの新規追加画面またはメディアライブラリ画面を介してアップロードされた場合、それは未添付の状態になりますが、後で投稿に挿入されると投稿に添付される可能性があります。

添付ファイルIDまたは画像IDの取得

添付ファイルIDを取得するには、get_posts()またはget_children()関数を使用します。この例では、現在の投稿のすべての添付ファイルを取得し、IDを指定して添付ファイルのすべてのメタデータを取得します。

  1. // Insert into the Loop
  2. $args = array(
  3. 'post_parent' => get_the_ID(),
  4. 'post_type' => 'attachment',
  5. );
  6. $attachments = get_posts( $args );
  7. if ( $attachments ) {
  8. foreach ( $attachments as $attachment ) {
  9. $meta_data = wp_get_attachment_metadata( $attachment->ID, false );
  10. }
  11. }

投稿IDからのみ画像を取得したい場合は、post_mime_typeを画像として指定します。

  1. $args = array(
  2. 'post_parent' => get_the_ID(),
  3. 'post_type' => 'attachment',
  4. 'post_mime_type' => 'image',
  5. );

参考文献

  • get_posts()
  • get_children()
  • wp_get_attachment_metadata()

特別な考慮事項

互換性のあるメディアフォーマット

メディアライブラリでは、ネットワーク管理者のunfiltered_uploadが有効であれば、画像や動画だけでなく、テキストファイル、オフィス文書、さらにはバイナリファイルもアップロードできます。シングルサイト管理者はデフォルトでunfiltered_upload機能を持っておらず、その機能を有効にするためには定義を設定する必要があります。音声および動画ファイルは、内部ライブラリMediaElement.jsによって処理されます。

トラブルシューティング:

添付ファイルを取得できません

get_posts()またはget_children()関数で添付メディアを取得できない場合は、メディアが本当に投稿に添付されているか確認してください。

管理画面から、メディア > ライブラリをクリックしてメディアライブラリを開き、メディアの「アップロード先」列の値を確認します。