メディアのアップロード時に追加のフィールドを作成する機能を使用しています。これらは画像とビデオにのみ重要ですが、音声をアップロードしている場合は無用であり、混乱を招くことさえあります。
これが機能です。
function give_linked_images_data($html, $id, $caption, $title, $align, $url, $size, $alt = '' ){
$classes = 'img image-link';
if (get_post_meta($id, "pop_title") == '') $poptitle = ''; else $poptitle = ' data-title="'. get_post_meta($id, "pop_title", true) .'"';
$html = preg_replace('/(<a.*?)>/', '$1 data-toggle="lightbox" '. $poptitle .' ' . $classes . '" >', $html);
return $html;
}
機能はと追加されます
add_filter('image_send_to_editor','give_linked_images_data',10,8);
...と私は使用して同様の機能を持っている
add_filter('media_send_to_editor','give_linked_images_data',10,8);
...しかしそれはvideo and audioアップロードで動作します。カスタムフィールドを無効にするために、アップロードされているメディアがオーディオかどうかをどのように検出できますか?
次の boolean 関数を使用して、 MIMEタイプ のチェックを単純化できます。
wp_attachment_is( 'image', $id )
wp_attachment_is( 'video', $id )
wp_attachment_is( 'audio', $id )
$id
は添付ファイルのIDです。
添付ファイルのIDは、実際にはmedia_send_to_editor
フィルタコールバックの入力引数の1つです。
私たちもあります:
wp_attachment_is_image( $id )
これはwp_attachment_is( 'image', $id )
のラッパーです。
参照:
私は方法を見つけました:
$mime_type = get_post_mime_type($post->ID);
// all mime https://codex.wordpress.org/Function_Reference/get_allowed_mime_types
// videos and images only
$permit_mime = array('image/jpeg','image/gif','image/png','image/bmp','image/tiff','image/x-icon','video/x-ms-asf','video/x-ms-wmv','video/x-ms-wmx','video/x-ms-wm','video/avi','video/divx','video/x-flv','video/quicktime','video/mpeg','video/mp4','video/ogg','video/webm','video/x-matroska');
// if is video or image
if (in_array($mime_type, $permit_mime)) {
// the function
}