TOP » WEB » Wordpress » WordPressの管理メニューに自身のユーザーページへのリンクを追加する
WordPressの管理メニューに自身のユーザーページへのリンクを追加する

WordPressの管理メニューに自身のユーザーページへのリンクを追加する

ユーザープロフィールにカスタムフィールドで写真やSNS情報そのほか様々な情報を追加して、「作成者アーカイブ」ページを「ユーザープロフィール」ページとして活用していた時、「登録した内容を確認する時にいちいちサイトのユーザーページにアクセスしにいくの面倒くさいから管理画面から直でページに飛べるようにして欲しい」といったお願いを受けたのが発端。

んなもんユーザープロフィールページをブックマークでもすりゃいいだろとかそういった対応は野暮なので、お望み通り管理画面内にページへのリンクを追加してみる。
追加する場所として管理メニュー「プロフィール」のサブメニューに「ユーザーページ」という形で入れてみます。

サブメニューの追加

お使いのテーマディレクトリ内の「functions.php」に以下のソースコードを記述します。

まずアクションフック時に実行する関数「add_external_link_submenu」を定義します。
最初にグローバル変数の「$current_user」と「$submenu」でログインしているユーザー(自身)の情報とサブメニューの情報を取得します。

そして取得したユーザー情報から「get_author_posts_url()」にユーザーIDを渡し、自身の作成者アーカイブページのURLを取得します。
最後にサブメニューの「profile.php」の末尾に新しくサブメニューを追加します。
追加の際に必要な情報は「出力するメニュー名」「表示に必要な権限」「リンク先」になります。
今回はメニュー名を「ユーザーページ」、必要な権限は一番最小限の権限となる「read」を、リンク先は先ほどの作成者アーカイブのURLを渡します。

これで管理画面にアクセスすると以下のように「プロフィール」のサブメニューとして「ユーザーページ」が追加されていると思います。

管理者の場合

管理者などのユーザー一覧を操作できる権限の場合は管理メニューが「プロフィール」ではなく「ユーザー」となるので、管理者にも同じようにリンクが欲しい場合は、上記の「$submenu[‘profile.php’][]」の下にでも「$submenu[‘users.php’][]」として、あとは同じ記述をすれば問題ないです。
「user.php」じゃなく「users.php」なのでお間違えなく。