add_media_page()
は、WordPressの管理画面にメディア関連のサブメニューを追加するための関数です。
メディアライブラリや画像のアップロードを扱うカスタム設定ページを作成したい場合に便利です。管理画面の「メディア」メニューの下に新しいページを追加し、独自の機能を組み込むことができます。例えば、特定のメディアファイルを管理するためのページや、画像の一括変換ツールなどを提供するプラグインに利用できます。
目次
機能の説明
どんな機能か?
add_media_page()
は、管理画面の「メディア」メニュー内に独自のサブページを追加するための関数です。
どんな時に使うのか?
- メディア関連の設定ページを追加したいとき
- 独自の画像処理ツールを管理画面に組み込みたいとき
- メディアライブラリと連携するプラグインを作成するとき
シンプルなコード例
以下のコードを functions.php
に追加すると、「メディア」メニューの下に「カスタムメディアページ」が追加されます。
add_action('admin_menu', function() {
add_media_page('カスタムメディアページ', 'カスタムメディア', 'manage_options', 'custom-media-page', function() {
echo '<h1>カスタムメディアページ</h1>';
echo '<p>ここに独自のメディア設定を追加できます。</p>';
});
});
'カスタムメディアページ'
:ページのタイトル(ブラウザのタブなどに表示)'カスタムメディア'
:管理メニューに表示される名前'manage_options'
:このページを表示できる権限(管理者のみ)'custom-media-page'
:ページのスラッグfunction() { ... }
:ページのコンテンツ
使い方の説明
フォームを追加する場合
メディア設定ページにカスタムオプションを追加するには、フォームを組み込むことができます。
add_action('admin_menu', function() {
add_media_page('メディア設定', 'メディア設定', 'manage_options', 'media-settings', 'custom_media_settings_page');
});
function custom_media_settings_page() {
?>
<div class="wrap">
<h1>メディア設定</h1>
<form method="post" action="options.php">
<?php
settings_fields('custom_media_settings_group');
do_settings_sections('media-settings');
submit_button();
?>
</form>
</div>
<?php
}
settings_fields('custom_media_settings_group')
:設定フィールドを登録do_settings_sections('media-settings')
:設定セクションを呼び出しsubmit_button()
:送信ボタンを追加
一緒に使うことが多い関連タグ
add_submenu_page()
add_media_page()
の代わりに、他のメニューのサブメニューとしてカスタムページを追加できます。
add_action('admin_menu', function() {
add_submenu_page('upload.php', '追加設定', '追加設定', 'manage_options', 'extra-media-settings', 'extra_media_settings_page');
});
wp_enqueue_media()
メディアアップローダーをカスタムページで使う場合に必要です。
add_action('admin_enqueue_scripts', function() {
wp_enqueue_media();
});
追加情報で取得したい場合
get_attached_media()
特定の投稿に紐づくメディアを取得することができます。
$media_items = get_attached_media('image', $post_id);
foreach ($media_items as $media) {
echo wp_get_attachment_url($media->ID);
}
出力される情報
- メディアのURL
- メディアのタイトル
- メディアのMIMEタイプ
想定されるトラブル
メニューが表示されない
add_media_page()
で追加したはずのメニューが表示されないことがあります。
解決方法
manage_options
の権限を持つユーザー(管理者)でログインしているか確認する- フック
admin_menu
内でadd_media_page()
を実行しているか確認する
Q&A
まとめ
add_media_page()
は、WordPress管理画面の「メディア」メニュー内にカスタム設定ページを追加するための関数です。
画像のアップロード管理や独自のメディア設定ページを作成したい場合に役立ちます。メディア関連のプラグイン開発において有用ですが、適切な権限チェックを行うことが重要です。
コメント