get_admin_url()
は、WordPressサイトの管理画面のURLを取得するためのテンプレートタグです。指定したサイトIDやパスを基に、管理者ページへの完全なURLを構築します。
機能の説明
get_admin_url()
は、WordPressの管理画面(/wp-admin/
)へのURLを取得するための関数です。
複数のサイトを管理するマルチサイト環境にも対応しており、特定のサイトIDを渡すことでそのサイトの管理画面URLを取得することが可能です。
- サイトURLに依存する管理ページのリンクを簡単に生成するのに役立ちます。
- 必要に応じてパスを指定して、特定の管理画面(例:投稿一覧画面、プラグイン画面など)へのリンクを生成できます。
シンプルなコード例
echo get_admin_url();
出力例
https://example.com/wp-admin/
使い方の解説
引数
$blog_id
(任意): マルチサイト環境で特定のサイトの管理画面URLを取得したい場合に使用。デフォルトはnull
(現在のサイト)。$path
(任意): 管理画面の特定のパスを指定する文字列。例:'edit.php'
で投稿一覧ページのURLを生成します。$scheme
(任意):http
またはhttps
を指定するスキーム。デフォルトはadmin
(サイト設定に依存します)。
現在のサイトの管理画面のURLを取得
echo get_admin_url();
このコードは、現在のサイトの管理画面のURLを出力します。デフォルトで https://example.com/wp-admin/
のように出力されます。
特定の管理画面へのリンクを取得(投稿一覧ページの場合)
echo get_admin_url(null, 'edit.php');
このコードは、現在のサイトの投稿一覧ページへのリンクを出力します。null
は現在のサイトを指しており、edit.php
が投稿一覧のパスです。
マルチサイト環境で特定サイトの管理画面URLを取得
echo get_admin_url(2); // サイトID 2 の管理画面URLを取得
この例では、サイトIDが 2
のサイトの管理画面URLを取得します。例えば、https://example.com/site2/wp-admin/
のようなURLが出力されます。
一緒に使うことが多い関連タグ
admin_url()
admin_url()
は、現在のサイトの管理画面のURLを取得するテンプレートタグです。
echo admin_url('plugins.php');
この例では、現在のサイトのプラグイン管理ページへのリンクを取得します。get_admin_url()
と似ていますが、マルチサイト対応のためにはget_admin_url()
を使います。
network_admin_url()
network_admin_url()
は、ネットワーク管理者用のURLを取得する関数です(マルチサイト環境専用)。
echo network_admin_url('sites.php');
このコードは、ネットワーク管理画面のサイト管理ページへのリンクを出力します。
追加情報を取得したい場合
現在のユーザーに対応した管理画面URLを取得
get_admin_url()
と組み合わせて、ユーザーの権限に応じた管理画面リンクを出力します。
if (current_user_can('edit_posts')) {
echo get_admin_url(null, 'edit.php');
} else {
echo '管理画面にアクセスする権限がありません。';
}
このコードは、ユーザーが投稿を編集できる場合にのみ、投稿一覧ページへのリンクを出力します。
site_url()
でサイトの基本URLを取得
echo site_url();
出力できる情報
- site_url(): サイトの基本URL
- home_url(): サイトのトップページURL
- admin_url(): 管理画面のURL(現在のサイト)
想定されるトラブル
正しいURLが表示されない
サイトURLやWordPressアドレスの設定が正しくない場合、意図しないURLが生成されることがあります。
解決策
WordPress管理画面の「一般設定」から、サイトアドレス(URL)とWordPressアドレス(URL)を確認してください。
HTTPSでないURLが表示される
サイト設定にHTTPSが適用されていない場合、get_admin_url()
がHTTPスキームでリンクを生成します。
解決策
WordPressの一般設定で、HTTPSのURLが設定されていることを確認してください。または、$scheme
引数に'https'
を指定します。
echo get_admin_url(null, '', 'https');
Q&A
まとめ
get_admin_url()
は、WordPress管理画面のURLを取得するための便利なテンプレートタグです。特定のパスを渡すことで、投稿一覧ページやプラグイン管理ページなどへのリンクも生成できます。マルチサイト環境に対応しており、サイトIDを指定することで各サイトの管理画面URLを取得することが可能です。
管理画面のURL取得では、admin_url()
との違いを理解し、必要に応じて使い分けると効果的です。また、HTTPSを適用する場合は設定の確認を怠らないようにしましょう。
コメント