※アンバサダーのuzurea.netさんから情報提供頂いた内容をもとに記事を作成しました。ありがとうございます。
WordPressの権限機能をカスタマイズすることで、特定のアカウントでQAアナリティクスだけを閲覧できるようすることができます。手順は下記です。
- 任意のユーザーを追加する。ダッシュボードを閲覧する権限は購読者でも大丈夫ですが、QAアナリティクスを閲覧できるようにするには管理者である必要があります。
- お使いのthemeのfunctions.phpに下記に記載しているコードを追加します。
- 2のコード中の’login_name’(2箇所)を、1で追加したユーザーのログインIDに入れ替えます。
- 例)$user_login === ‘myname@test.com’
- 2のコードの中の$need_submenusという変数のところで、1のユーザーに必要なサブメニュー名を追加したり残します。
- 例)$need_submenus = [‘ホーム’];
- 1のユーザーログインし、QAアナリティクスの管理画面URLに直接アクセスすると、正しく4で設定したメニューが閲覧できることを確認します。
※add_cap関数を用いるため、上記の設定を行うと該当ユーザーには永久的にQAアナリティクスの閲覧権限が与えられます(DBのuser_metaに保存されます)。不要になった権限を削除するには、ユーザーごと削除するか、remove_cap関数を活用してください。
functions.phpに追加するコード
//管理者画面へのアクセス権を付与
function qa_roleadd_func ( $user_login , $current_user ) {
//権限を与えたいユーザーのログインIDを指定します
if ( $user_login === 'login_name' ) {
$current_user->add_cap('manage_options');
}
}
add_action( 'wp_login', 'qa_roleadd_func', 10, 2 );
//管理画面の不要なメニューを消す
function remove_admin_menus() {
$currentuser = wp_get_current_user();
if ( $currentuser->user_login === 'login_name' ) {
//QA Analytics以外のメニューを消します
//下記で消せないメニューは、themeに入っているfunctions.phpなどで直接追加されている可能性があります。
global $menu;
foreach ( $menu as $idx => $eachmenu ) {
if ( $eachmenu[0] !== 'QA Analytics' ) {
unset( $menu[$idx] );
}
}
//QA Analytics サブメニューコントロール
//必要なメニュー名を記入しておきます。
$need_submenus = ['ホーム', 'リアルタイム ビュー', 'ヒートマップ管理'];
global $submenu;
foreach ( $submenu['qahm-home'] as $idx => $eachsub ) {
$is_need = false;
foreach ( $need_submenus as $need_submenu ) {
if ( $eachsub[0] === $need_submenu ) {
$is_need = true;
}
}
if ( ! $is_need ) {
unset( $submenu['qahm-home'][$idx] );
}
}
}
}
add_action('admin_menu', 'remove_admin_menus');