メディア関連画面の項目を非表示にする
メディア関連のそれぞれの項目の非表示をしようと思います。やり方としては、display:noneで非表示にしています。またメディアといっても、管理画面のメディアライブラリ、エディタからメディアへの追加、関数から出力するメディアボタンがあり、それに対応したアクションフックもあります。フックが異なれば、適用範囲が変わるのでこのあたりは注意が必要です。下記に簡潔にまとめましたが、ひょっとしたら表記の間違い・抜け項目があるかもしれませんが、基本は、タグや属性よりdisplay:noneで非表示にしているだけなので、応用して修正してください。
まずは、管理画面のメニューの[メディアの]メディアライブラリより、左にある詳細を全て消す場合は、下記のように、class=”attachment-info” を指定すれば、非表示にすることができます。
//functions.php add_action( 'admin_print_styles', 'hide_media_menu' ); function hide_media_menu() { echo '<style> .attachment-details div[class="attachment-info"] { display: none; }</style>'; }
ただ、これだと、必要なものまで非表示にしてしまっているかもしれないので、細かく、表示・非表示したい場合については、その項目のタグや属性を確認して、下記のように必要に応じて消してみてください。
//for example add_action( 'admin_print_styles', 'hide_media_menu_01' ); function hide_media_menu_01() { echo '<style> .attachment-details div[class="filename"], .attachment-details div[class="uploaded"], .attachment-details div[class="file-size"], .attachment-details div[class="dimensions"], .attachment-details div[class="compat-meta"], .attachment-details label[data-setting="url"], .attachment-details label[data-setting="title"], .attachment-details label[data-setting="caption"], .attachment-details label[data-setting="alt"], .attachment-details label[data-setting="description"], .attachment-details span[class="name"], .attachment-details span[class="value"], .attachment-details div[class="actions"], .attachment-details button[class="button-link delete-attachment"] { display: none; }</style>'; }
次に、投稿画面の「メディアを追加」の項目の非表示です。こちらも同様に下記のようになります。こちらの場合は、do_action( ‘print_media_templates’ )を利用します。このアクションフックは、メディア機能全てに適用されるので、個人的には、このフックだけ知っていればよいと思っています。
add_action( 'print_media_templates', 'hide_media_menu_02' ); function hide_media_menu_02() { echo '<style> .media-menu a[class="media-menu-item"], .media-menu a[class="media-menu-item hidden"], .attachment-details h2, .attachment-details div[class="thumbnail thumbnail-image"], .attachment-details div[class="filename"], .attachment-details div[class="uploaded"], .attachment-details div[class="file-size"], .attachment-details div[class="dimensions"], .attachment-details a[class="edit-attachment"], .attachment-details label[data-setting="url"], .attachment-details label[data-setting="title"], .attachment-details label[data-setting="caption"], .attachment-details label[data-setting="alt"], .attachment-details label[data-setting="description"], .attachment-details button[class="button-link delete-attachment"], .attachment-display-settings h2, .attachment-display-settings span, .attachment-display-settings select[data-setting="align"], .attachment-display-settings select[class="link-to"], .attachment-display-settings select[class="size"] { display: none; }</style>'; }
また、そのほかには、wp_enqueue_media()関数によって設置した、メディアアップローダーの項目非表示に関しては、do_action( ‘wp_enqueue_media’ ) を使います。
add_action( 'wp_enqueue_media', 'hide_media_menu_03' ); function hide_media_menu_03() { echo '<style> .attachment-details h2, .attachment-details div[class="thumbnail thumbnail-image"], .attachment-details div[class="filename"], .attachment-details div[class="uploaded"], .attachment-details div[class="file-size"], .attachment-details div[class="dimensions"], .attachment-details a[class="edit-attachment"], .attachment-details button[class="button-link delete-attachment"], .attachment-details label[data-setting="url"], .attachment-details label[data-setting="title"], .attachment-details label[data-setting="caption"], .attachment-details label[data-setting="alt"], .attachment-details label[data-setting="description"] { display: none; }</style>'; }
これらのメディア関連の画面はどれも似ていますので、当初は同一のものと勘違いしており、同一のフックでいけるのかと思っていましたが、全てに適用できるアクションフックは、上記でも紹介しましたが、do_action( ‘print_media_templates’ )です(他にもあるかもしれませんが)。なので、ここにまとめて、書くのがベストかと思われます。ただ、全てに適用されるため、3つの画面、それぞれで表記を変えたい場合は、URLなどより条件分岐で、そのページなら表示・表示のような設定をする必要があります。