メディア

2020.04.06 2020.04.06

TOPICS

翻訳元記事はこちらです。

WordPressでは、テーマ開発者は、プラットフォームのコアメディア機能の外観、使用感、機能をカスタマイズすることができます。

基本

WordPressでは、画像や動画、音声ファイルなど様々なメディアをアップロード、保存、表示することができます。メディアのアップロードは、管理画面の「メディア>新規追加」、または投稿/ページエディタの「メディア追加」ボタンから行うことができます。

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

添付ファイルID、画像IDの取得

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

// Insert into the Loop
$args = array(
    'post_parent'    => get_the_ID(),
    'post_type'      => 'attachment', 
);
$attachments = get_posts( $args );
if ( $attachments ) {
    foreach ( $attachments as $attachment ) {
        $meta_data = wp_get_attachment_metadata( $attachment->ID, false );
    }
}

投稿IDを指定して、画像を取得したい場合は、post_mime_typeimageを指定します。

$args = array(
    'post_parent'    => get_the_ID(),
    'post_type'      => 'attachment', 
    'post_mime_type' => 'image',
);

リファレンス

特別な配慮

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

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

トラブルシューティング

添付ファイルを取得できない

get_posts()get_children()関数で添付されているメディアが取得できない場合は、本当に投稿に添付されているか確認してください。
管理画面から「メディア」→「ライブラリ」をクリックしてメディアライブラリを開き、メディアの「アップロード先」欄の値を確認します。