플러그인 없이 프로그래밍 방식으로 WordPress 관리 메뉴 항목을 제거하는 방법

게시 됨: 2020-01-20

프로그래밍 방식으로 WordPress 관리 메뉴 항목을 제거하는 방법 WordPress 대시보드 메뉴는 관리 대시보드의 여러 섹션을 둘러볼 수 있는 매우 유용한 방법이지만 때로는 귀찮거나 원하지 않을 수 있습니다. 특히, 블로깅과 반대로 클라이언트 웹사이트를 생성하기 위한 콘텐츠 관리 시스템으로 워드프레스를 사용하는 경우 필요하지 않은 워드프레스 관리 메뉴 항목을 제거해야 합니다.

WordPress 관리 메뉴 항목을 제거하는 가장 쉬운 방법 중 하나는 사용자 역할 또는 조건부로 관리 메뉴 항목을 숨길 수 있는 무료로 사용 가능한 플러그인을 사용하는 것입니다.

플러그인을 사용하여 WordPress 관리 메뉴 항목을 제거하지 말아야 하는 경우

플러그인을 사용하여 WordPress 관리 메뉴 항목을 제거할 때의 단점은 일관된 업데이트를 위해 타사 플러그인 개발자에 지나치게 의존할 수 있다는 점입니다.

타사 플러그인 위험

이 경우 플러그인을 사용하지 않고 WordPress 대시보드에 표시되는 메뉴를 제어하려는 경우 이 튜토리얼이 최고의 가이드입니다.

지속적인 업데이트

프로그래밍 방식으로 WordPress 관리 메뉴 항목을 제거하는 또 다른 이유는 설치하는 모든 WordPress 플러그인에 있는 지속적인 업데이트입니다.

이러한 업데이트는 사용자 경험, 성능 및 보안을 향상시키기 때문에 중요하지만 특히 많은 수의 클라이언트 웹 사이트를 처리할 때 너무 번거로울 수 있습니다.

여러 플러그인 관리 메뉴

사이트에 너무 많은 플러그인이 설치되어 있는 경우 대부분 관리 메뉴와 함께 제공되며 지속적으로 관리 메뉴를 사용하지 않기 때문에 메뉴를 제거하고 싶을 수 있습니다.

이 게시물에서는 플러그인을 사용하지 않고 WordPress 메뉴 항목을 제거하는 방법을 설명합니다. WordPress 사이트에서 이를 구현하려면 특히 functions.php 테마 파일에 코드 조각을 추가하는 WordPress 사이트 편집 경험이 약간 필요합니다.

프로그래밍 방식으로 WordPress 관리 메뉴 항목 제거

나는 빠른 요약으로 시작하는 것을 좋아하는데, 그 이유는 독자들이 단계별 가이드에서 빠른 솔루션을 찾는 것을 더 쉽게 해주기 때문입니다. 다음은 WordPress 관리 메뉴 항목을 제거하기 위해 수행해야 하는 단계입니다.

  1. WordPress 사이트에 로그인하고 제거하려는 관리자 메뉴 항목을 식별합니다.
  2. 대시보드에서 WordPress 관리 메뉴를 제거하는 논리가 있는 콜백 함수admin_menu 이벤트에 연결하는 작업 후크를 만듭니다 .
  3. 콜백 함수는 대상 관리 메뉴 항목 각각을 제거하기 위해 remove_menu_page 또는 remove_submenu_page() WordPress 함수를 사용해야 합니다. 예를 들어, 다음 코드를 사용하여 테마 메뉴에서 위젯 메뉴를 제거할 수 있습니다. remove_submenu_page( 'themes.php', 'widgets.php'); 또는 이 코드를 사용하여 대시보드 기본 메뉴를 제거하십시오. - remove_menu_page('index.php');
  4. 또는 unset() php 함수를 사용하고 전역 하위 메뉴 배열의 값에 액세스하여 대상 WordPress 관리 메뉴 항목 각각을 제거할 수 있습니다.
  5. 이 코드 조각을 테마 functions.php에 추가하고 변경 사항을 업데이트하십시오. 플러그인을 사용하지 않고 WordPress 관리 메뉴 항목을 성공적으로 제거합니다.
  6. 또한 이 코드를 사용자 정의 플러그인의 함수에 추가할 수 있으며 테마 functions.php에서 작동하는 것처럼 작동합니다.

플러그인 없이 WordPress 관리 메뉴를 제거하는 방법

다음은 다른 플러그인을 사용하는 대신 코드를 추가하여 WordPress 관리자 메뉴 항목을 제거하는 자세한 단계별 접근 방식입니다.

관리자 메뉴 항목 식별 슬러그

WordPress 대시보드에 로그인하고 제거하려는 관리 메뉴 항목을 확인합니다. 이 예에서 볼 수 있듯이 기본 대시보드 메뉴에는 slug index.php 가 있습니다.

이 슬러그는 내가 곧 설명할 remove_submenu_page() 함수에 추가하는 매개변수 중 하나이기 때문에 중요합니다.

WordPress 관리자 메뉴 제거

페이지 제거 및 하위 메뉴 페이지 기능 제거 방법 이해

페이지 기능 제거

remove_menu_page 함수에는 페이지 슬러그인 매개변수가 하나만 제공되며 최상위 관리 메뉴를 제거합니다. 분명히 문자열인 페이지 슬러그이기 때문에 매개변수는 문자열이고 일반 코드는 다음과 같아야 합니다.

 remove_menu_page(문자열;$menu_slug;)

하위 페이지 기능 제거

remove_submenu_page 함수는 하위 메뉴를 제거할 때 상위 메뉴의 슬러그인 첫 번째 매개변수와 제거하려는 하위 메뉴의 슬러그 중 두 번째 매개변수와 함께 제공됩니다. 일반 코드는 다음과 같아야 합니다.

 remove_submenu_page( 문자열 $menu_slug, 문자열 $submenu_slug )

관리 메뉴 및/또는 하위 메뉴 항목을 제거하는 작업 후크 만들기

다음은 admin_menu 이벤트에 연결되고 ' remove_admin_menu_items' 라는 콜백 함수가 있는 작업 후크의 예입니다.

 add_action( 'admin_menu', 'remove_admin_menu_items', 999 );

remove_submenu_page 및 remove_menu_page()를 사용하여 관리자 메뉴 및/또는 하위 메뉴 항목을 제거하는 콜백 함수 생성

먼저 콜백 함수에서 unset() 함수를 사용할 경우 전역 $submenu 변수가 있는 전역 메뉴 배열을 가져와야 합니다.

둘째, 아래 코드와 같이 제거하려는 페이지를 대상으로 remove_submenu_page 또는 remove_menu_page() 함수를 추가합니다.

 기능 remove_admin_menu_items() {        

    remove_submenu_page( '메뉴_슬러그', '하위메뉴_슬러그'); 

}

또는 unset을 사용하면 다음 콜백 기능을 가질 수 있습니다.

 기능 remove_admin_menu_items() {

        글로벌 $하위 메뉴; 

       unset($submenu['상위 메뉴 슬러그'][관리자 항목 하위 메뉴 배열 인덱스]);

 }

업데이트 관리 메뉴 항목을 제거하는 방법에 대한 예

WordPress 대시보드에 로그인하면 아래 이미지와 같이 기본 대시보드 메뉴 아래에 있는 업데이트에 대한 메뉴 항목이 있습니다.

WordPress 관리자 메뉴 제거

위에서 설명한 방법을 사용하여 이 관리 메뉴 항목을 제거하는 방법을 설명하겠습니다. 먼저 상위 메뉴 슬러그는 index.php 이고 업데이트 메뉴의 슬러그는 update-core.php 입니다.

WordPress 관리 메뉴 항목 상위 및 하위 메뉴 제거

따라서 다음과 같이 remove_menu_page() 함수를 사용하여 전체 메뉴 항목을 제거하는 작업 후크 및 콜백 함수를 만들 수 있습니다.

 // 하위 페이지와 함께 기본 메뉴 항목을 제거합니다. /submenus

add_action( 'admin_menu', 'remove_admin_menu_items', 999 );

 기능 remove_admin_menu_items() {

    remove_menu_page('index.php');


 }

그러면 아래 이미지와 같이 전체 메뉴와 하위 메뉴가 제거됩니다.

WordPress 하위 메뉴 항목만 제거

WordPress 하위 메뉴 항목만 제거

다음과 같이 remove_submenu_page 함수를 사용하여 하위 메뉴 항목을 제거하는 액션 후크 및 콜백 함수를 생성할 수 있습니다.

 //하위 페이지 또는 하위 메뉴 제거

add_action( 'admin_menu', 'remove_admin_menu_items', 999 );

기능 remove_admin_menu_items() {

    remove_submenu_page('index.php','update-core.php' );

}

이렇게 하면 remove_submenu_page 함수의 두 번째 매개변수에 지정된 하위 메뉴가 제거됩니다. 이 경우 ' update-core.php' 로 지정했으며 결과는 아래 이미지와 같습니다.

Unset() PHP 함수 사용

또한 PHP의 unset 기능을 사용하여 하위 메뉴 항목을 제거할 수 있으며 이 경우 아래 코드와 같이 먼저 전역 $submenu 배열 에 액세스해야 합니다.

 // admin_menu 이벤트에 액션 후크 추가

add_action( 'admin_menu', 'remove_admin_menu_items', 999 );

//콜백 함수
기능 remove_admin_menu_items() {

    //관리 메뉴 배열->모든 WordPress 관리 메뉴 항목 목록이 이 배열에 있습니다.
    글로벌 $하위 메뉴;

    // 인덱스별로 관리자 메뉴 항목을 볼 수 있도록 배열을 화면에 인쇄합니다.
    
     인쇄('<사전>');
     print_r($하위메뉴);
     인쇄('<사전>');

      // 관리자 메뉴 항목 배열만 표시되도록 화면에 표시된 다른 모든 항목을 제거합니다.
      주사위();

}

이 코드는 전역 하위 메뉴 배열을 가져오고 모든 메뉴의 배열을 표시하도록 인쇄하여 각 관리 메뉴 항목의 인덱스를 선택한 다음 원하는 대로 제거할 수 있습니다.

이 코드에서 pre 태그die() 함수를 사용하여 코드를 읽기 쉬운 형식으로 표시하는 것을 볼 수 있습니다.

Unset() PHP 함수 워드프레스 사용

설정 해제를 사용하여 WordPress 하위 메뉴 메뉴 항목 제거

따라서 update-core 하위 메뉴의 배열 인덱스는 10 입니다. 따라서 다음과 같이 unset() 함수를 사용할 수 있습니다.

 // unset을 사용하여 하위 페이지와 함께 기본 메뉴 항목을 제거합니다.

add_action( 'admin_menu', 'remove_admin_menu_items', 999 );

기능 remove_admin_menu_items() {

    글로벌 $하위 메뉴;

       unset($submenu['index.php'][0]); //최상위 메뉴 제거 index.php (대시보드 메뉴 - 홈 메뉴)
      unset($submenu['index.php'][10]); // 하위 메뉴 제거 update-core.php (메뉴 업데이트)


}

결과는 remove_submenu_page WordPress 기능을 사용한 것과 같습니다.

설정 해제를 사용하여 WordPress 관리 메뉴 항목 제거

또한 이러한 각 페이지를 대상으로 하는 설정되지 않은 기능을 사용하여 최상위 페이지와 하위 메뉴를 모두 함께 제거할 수도 있습니다.

설정 해제를 사용하여 WordPress 관리 메뉴 항목 제거

코드는 다음과 같아야 합니다.

 //. unset을 사용하여 기본 하위 메뉴 항목 제거

add_action( 'admin_menu', 'remove_admin_menu_items', 999 );

기능 remove_admin_menu_items() {

   글로벌 $하위 메뉴;

   unset($submenu['index.php'][10]);


}

결과는 코드에서 설정 해제한 페이지 중 하나를 제거하는 것입니다.

플러그인 없이 프로그래밍 방식으로 WordPress 관리 메뉴 항목을 제거하는 방법

마무리

이 게시물에서는 WordPress 관리 메뉴 항목을 제거하고 WordPress 대시보드를 정리하는 데 사용할 수 있는 두 가지 주요 방법을 광범위하게 다루었습니다. WordPress 개발자인 경우 이 코드를 재사용하고 복사하여 내 요점 을 쉽게 확인할 수 있으며 GitHub 에서 더 많은 향후 업데이트를 확인할 수 있습니다. 나는 또한 여기에서 몇 가지 다른 스니펫을 공유했습니다 – WP-Snippets . 이제 메뉴에서 원하지 않는 WordPress 관리 항목을 제거할 수 있기를 바랍니다.