admin_url()
は、WordPress の管理画面(ダッシュボード)内の特定のページへの URL を取得するための関数です。
この関数を使うことで、環境に依存せずに適切な管理画面の URL を取得できるため、プラグインやテーマのカスタマイズ時に便利です。特に、wp-admin
フォルダの位置が変更される可能性がある環境でも正しく URL を生成できるため、ハードコーディングを避けたい場合に有効です。
機能の説明
admin_url()
の役割
admin_url()
は、WordPress の管理画面(wp-admin/
)の URL を取得し、必要に応じて特定の管理ページへのパスを追加できます。
主な用途
- プラグインやテーマで管理画面へのリンクを動的に生成
- 管理者向けのカスタムメニューやダッシュボードウィジェットを作成
- 非ログインユーザーを管理画面にリダイレクトしないようにする
- JavaScript に適切な管理 URL を渡す
シンプルなコード例
echo admin_url();
出力例(WordPress が https://example.com/
にインストールされている場合):
https://example.com/wp-admin/
このように、サイトの wp-admin/
ディレクトリの URL を動的に取得できます。
使い方の説明
管理画面の特定のページ(例: 投稿一覧)へのリンクを取得するには、admin_url()
の引数にパスを指定します。
echo admin_url('edit.php');
出力例
https://example.com/wp-admin/edit.php
これは、投稿一覧(wp-admin/edit.php
)の URL を生成します。
管理画面内の特定の設定ページの URL を取得
例えば、「一般設定(Settings > General)」ページの URL を取得するには以下のようにします。
echo admin_url('options-general.php');
出力例
https://example.com/wp-admin/options-general.php
特定のユーザーを管理画面のページへリダイレクト
ユーザーがログインしている場合、管理画面のダッシュボードへリダイレクトする例:
if (is_user_logged_in()) {
wp_redirect(admin_url());
exit;
}
一緒に使うことが多い関連タグ
get_admin_url()
特定のサイト(マルチサイト環境)における管理画面の URL を取得する。
echo get_admin_url(1, 'edit.php');
出力例(サイト ID が 1 の場合)
https://example.com/wp-admin/edit.php
network_admin_url()
マルチサイトのネットワーク管理画面の URL を取得する。
echo network_admin_url();
出力例
https://example.com/wp-admin/network/
site_url()
WordPress サイトのルート URL を取得する。
echo site_url();
出力例
https://example.com/
admin_url()
と site_url()
の違い
関数 | 役割 | 例 |
---|---|---|
admin_url() | 管理画面の URL を取得 | https://example.com/wp-admin/ |
site_url() | サイトのルート URL を取得 | https://example.com/ |
追加情報で取得したい場合
ログインページの URL を取得
ログインページの URL を取得するには、wp_login_url()
を使用します。
echo wp_login_url();
出力例
https://example.com/wp-login.php
ログアウトページの URL を取得
ログアウト URL を取得するには、wp_logout_url()
を使用します。
echo wp_logout_url();
出力例
https://example.com/wp-login.php?action=logout
想定されるトラブル
admin_url()
が正しい URL を返さない
解決方法
site_url()
やhome_url()
ではなくadmin_url()
を使用しているか確認するwp-admin
の場所が変更されていないか確認する(セキュリティプラグインの影響)define('WP_ADMIN_DIR', '/custom-admin/')
のような設定がある場合、適切に適用されているか確認
管理画面の URL に wp-admin/
が二重に入る
解決方法
admin_url()
の引数に /
を付けていないか確認する
// NG echo admin_url('/edit.php'); // https://example.com/wp-admin//edit.php
// OK echo admin_url('edit.php'); // https://example.com/wp-admin/edit.php
QA
まとめ
admin_url()
は、WordPress の管理画面の URL を取得する便利な関数であり、動的に適切な URL を生成するのに役立ちます。
特に、環境によらず wp-admin/
の正しいパスを取得できるため、テーマやプラグイン開発時には必須の関数です。get_admin_url()
や network_admin_url()
などと組み合わせることで、より柔軟な URL 管理が可能になります。
コメント