programing

Wordpress에서 관리 메뉴 항목 숨기기

muds 2023. 3. 12. 11:25
반응형

Wordpress에서 관리 메뉴 항목 숨기기

Wordpress의 특정 관리 메뉴 항목을 한 사용자를 제외한 모든 사용자로부터 숨기려고 합니다.

다양한 튜토리얼을 찾을 수 있지만 대부분 사용자 역할보다는 사용자 역할에 숨겨져 있습니다.

워드프레스 코덱스에서 이걸 찾았어요

<?php 
function custom_menu_page_removing() {
    remove_menu_page( $menu_slug );
}
add_action( 'admin_menu', 'custom_menu_page_removing' );
?>

하지만 완전히 이해하지는 못하고, 코드를 기본적으로 다음과 같이 하기 위해 PHP를 추가해야 할 것 같습니다.

사용자가 shaun@seedcreativity.co.uk이 아닌 경우(Me!)

그런 다음 다음 메뉴 항목을 제거합니다.

항목 ID 1, 항목ID 2, 항목ID 3 등...

누구 도와줄 사람?

사용자 ID 를 확인할 수 있습니다.

// admin_init action works better than admin_menu in modern wordpress (at least v5+)
add_action( 'admin_init', 'my_remove_menu_pages' );
function my_remove_menu_pages() {


  global $user_ID;

  if ( $user_ID != 1 ) { //your user id

   remove_menu_page('edit.php'); // Posts
   remove_menu_page('upload.php'); // Media
   remove_menu_page('link-manager.php'); // Links
   remove_menu_page('edit-comments.php'); // Comments
   remove_menu_page('edit.php?post_type=page'); // Pages
   remove_menu_page('plugins.php'); // Plugins
   remove_menu_page('themes.php'); // Appearance
   remove_menu_page('users.php'); // Users
   remove_menu_page('tools.php'); // Tools
   remove_menu_page('options-general.php'); // Settings
  }
}

지정된 전자 메일의 Posts 메뉴를 삭제할 수 있습니다.

function custom_menu_page_removing() {
    if ( get_currentuserinfo()->user_email != 'shaun@seedcreativity.co.uk' )
        remove_menu_page( 'edit.php' );
}
add_action( 'admin_menu', 'custom_menu_page_removing' );

사용자가 적절한 URL(예: /wp-admin/edit)을 추측할 수 있는 경우 삭제된 페이지를 사용할 수 있습니다.php

이 코드를 사용해 보세요.

function remove_menus(){
     $current_user = wp_get_current_user();
    if( 'shaun@seedcreativity.co.uk' !==  $current_user->user_email){
        remove_menu_page( 'item1' ); 
        remove_menu_page( 'item2' ); 
    }

}
add_action( 'admin_menu', 'remove_menus' );

item1, item2는 페이지명을 http://test.com/wp-admin/admin.php?page=item1과 같이 지정합니다.

** woocommerce, 마케팅, acf 필드 및 분석 메뉴를 숨기려면 아래 코드를 사용합니다**

add_action( 'admin_init', 'remove_menu_pages' );
function remove_menu_pages() {


  global $user_ID;

  if ( $user_ID != 1 ) { 
   remove_menu_page( 'edit.php?post_type=acf-field-group' );
   remove_menu_page( 'edit.php?post_type=product' );
   remove_menu_page('woocommerce');
   remove_menu_page('wc-admin&path=/analytics/overview');
   remove_menu_page('woocommerce-marketing');
  }
}

언급URL : https://stackoverflow.com/questions/42934129/hiding-admin-menu-items-in-wordpress

반응형