メディア関連画面の項目を非表示にする
メディア関連のそれぞれの項目の非表示をしようと思います。やり方としては、display:noneで非表示にしています。またメディアといっても、管理画面のメディアライブラリ、エディタからメディアへの追加、関数から出力するメディアボタンがあり、それに対応したアクションフックもあります。フックが異なれば、適用範囲が変わるのでこのあたりは注意が必要です。下記に簡潔にまとめましたが、ひょっとしたら表記の間違い・抜け項目があるかもしれませんが、基本は、タグや属性よりdisplay:noneで非表示にしているだけなので、応用して修正してください。
まずは、管理画面のメニューの[メディアの]メディアライブラリより、左にある詳細を全て消す場合は、下記のように、class=”attachment-info” を指定すれば、非表示にすることができます。
1 2 3 4 5 6 7 | //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>'; } |
ただ、これだと、必要なものまで非表示にしてしまっているかもしれないので、細かく、表示・非表示したい場合については、その項目のタグや属性を確認して、下記のように必要に応じて消してみてください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | //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’ )を利用します。このアクションフックは、メディア機能全てに適用されるので、個人的には、このフックだけ知っていればよいと思っています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | 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’ ) を使います。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | 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などより条件分岐で、そのページなら表示・表示のような設定をする必要があります。