MENU

add_media_page()

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() で追加したページのURLを知りたい

admin.php?page=custom-media-page の形式でアクセスできます。

サブメニューではなく独立したメニューとして追加する方法は?

add_menu_page() を使用してください。

メディアアップローダーを組み込むには?

wp_enqueue_media() を利用し、JavaScriptでメディアライブラリを開くコードを追加します。

まとめ

add_media_page() は、WordPress管理画面の「メディア」メニュー内にカスタム設定ページを追加するための関数です。

画像のアップロード管理や独自のメディア設定ページを作成したい場合に役立ちます。メディア関連のプラグイン開発において有用ですが、適切な権限チェックを行うことが重要です。

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

This site uses Akismet to reduce spam. Learn how your comment data is processed.

目次