私は答えを探しています。
私は単にアップローダとギャラリービューから代替テキスト、キャプション、説明とリンクURLフィールドを削除したいです。
このMedia-thingy以外のものはすべて削除できるようです。
手助けをしてくれてありがとう:)
あなたはフィルタを介してこれを行うことができます。 functions.phpに以下を追加してください。この方法であなた自身のフィールドを追加することもできます...
// edit fields in media upload area
add_filter('attachment_fields_to_edit', 'remove_media_upload_fields', 10000, 2);
function remove_media_upload_fields( $form_fields, $post ) {
// remove unnecessary fields
unset( $form_fields['image-size'] );
unset( $form_fields['post_excerpt'] );
unset( $form_fields['post_content'] );
unset( $form_fields['url'] );
unset( $form_fields['image_url'] );
unset( $form_fields['align'] );
return $form_fields;
}
上記の例では必要以上に削除されていますが、$form_fields
変数に対してprint_r()
を実行すると、追加/削除できるものがわかります。
残念ながら、メディアライブラリをアップグレードしたときにWP3.5でこれはかなり変更されたようです。そのフィルタの$ form_fieldsパラメータには、デフォルトはもう含まれていません。私がこれまでに見つけた唯一の解決策は、バッファリングを使用してビューからマークアップを強制的に削除することです。
これは非常に壊れやすいです - WordPressコアを変更するとこれが壊れる可能性があります
function wpse45562_remove_media_fields( $buffer ) {
// remove the 'caption' block
$buffer = preg_replace( '~<p>\s*<label\s*for="attachment_caption">.*?</p>~ims', '', $buffer );
// remove the 'alt text' block
$buffer = preg_replace( '~<p>\s*<label\s*for="attachment_alt">.*?</p>~ims', '', $buffer );
// remove the 'description' box (and label separately)
$buffer = preg_replace( '~<div\s*id="wp-attachment_content-editor.*?</div>~ims', '', $buffer );
$buffer = preg_replace( '~<label\s*for="content">.*?</label>~ims', '', $buffer );
return $buffer;
}
function wpse45562_media_strip_buffer_start() { ob_start("wpse45562_remove_media_fields"); }
function wpse45562_media_strip_buffer_end() { ob_end_flush(); }
add_action('admin_head', 'wpse45562_media_strip_buffer_start', 10, 1);
add_action('admin_footer', 'wpse45562_media_strip_buffer_end', 10, 1);