WordPress remove_menu_page() 함수가 오류를 발생시킵니다.
WordPress 관리 패널에서 몇 가지 최상위 메뉴를 제거하려고 합니다.이상하게도 에러 메세지가 표시됩니다.plugin.phpfile. 여기서 함수는 다음과 같이 선언됩니다.
Invalid argument supplied for foreach() in C:\wamp\www\wordpress-alut\wp-admin\includes\plugin.php on line 1261
파일에 접속해 보니, 다음의 코드가 있습니다.
function remove_menu_page( $menu_slug ) {
global $menu;
foreach ( $menu as $i => $item ) { // **this is line 1261**
if ( $menu_slug == $item[2] ) {
unset( $menu[$i] );
return $item;
}
}
return false;
}
주의할 점은 사용 시remove_submenu_page()의 다음 기능입니다.plugin.php, 이러한 에러는 표시되지 않습니다.내 기능은 다음 위치에 있습니다.functions.php:
add_action( 'admin_init', 'mf_remove_menu_pages' );
function mf_remove_menu_pages() {
remove_menu_page('link-manager.php');
remove_menu_page('index.php');
remove_menu_page('users.php');
remove_menu_page('upload.php');
remove_menu_page('tools.php');
remove_menu_page('edit.php');
remove_menu_page('edit-comments.php');
remove_menu_page('post-new.php');
remove_submenu_page('themes.php','themes.php');
remove_submenu_page('themes.php','theme-editor.php');
remove_submenu_page('themes.php','widgets.php');
};
전화했군요mf_remove_menu_pages()전에$menu실제로 셋업되어 있거나$menu설정되지 않았습니다.대기해야 합니다.admin_menu실제로 전화를 걸기 위해 훅을 걸다remove_menu_page()만약 당신이 그걸 하고 있다면admin_init잘못된 훅을 사용하고 있습니다.그래서 AJAX 요구에 대한 보킹이 이루어지고 있습니다.
그래서 갈고리를 바꿔야 해요.다음을 사용해 보십시오.
add_action( 'admin_menu', 'mf_remove_menu_pages' );
function mf_remove_menu_pages() {
remove_menu_page('link-manager.php');
remove_menu_page('index.php');
remove_menu_page('users.php');
remove_menu_page('upload.php');
remove_menu_page('tools.php');
remove_menu_page('edit.php');
remove_menu_page('edit-comments.php');
remove_menu_page('post-new.php');
remove_submenu_page('themes.php','themes.php');
remove_submenu_page('themes.php','theme-editor.php');
remove_submenu_page('themes.php','widgets.php');
}
이것이 도움이 되기를 바랍니다:)
WordPress의 최신 버전에서는 다음과 같은 하위 페이지를 제거합니다.theme-editor.php(또는 Jetpack 플러그인에 의해 도입된 서브페이지)에 바인드해야 합니다.admin_menu매우 높은 우선순위로 훅합니다.
예를 들어 제거할 경우theme-editor.phppriority를 약으로 설정할 필요가 있습니다.120Jetpack 페이지에는 필요한 것이 있습니다.2000.
add_action( 'admin_menu', 'mf_remove_menu_pages', 120 );
function mf_remove_menu_pages() {
remove_menu_page('link-manager.php');
remove_menu_page('index.php');
remove_menu_page('users.php');
remove_menu_page('upload.php');
remove_menu_page('tools.php');
remove_menu_page('edit.php');
remove_menu_page('edit-comments.php');
remove_menu_page('post-new.php');
remove_submenu_page('themes.php','themes.php');
remove_submenu_page('themes.php','theme-editor.php');
remove_submenu_page('themes.php','widgets.php');
}
이는 Wordpress Codex 및 Wordpress 지원 포럼에도 명시되어 있습니다.
언급URL : https://stackoverflow.com/questions/9052416/wordpress-remove-menu-page-function-throws-an-error
'programing' 카테고리의 다른 글
| Jersey 예외 : SERVE : Java 클래스의 메시지 본문 리더 (0) | 2023.03.15 |
|---|---|
| WooCommerce 3+ 어레이에서 주문 메타를 가져오는 방법 (0) | 2023.03.10 |
| React Dev 도구에 내 구성 요소가 알 수 없음으로 표시됨 (0) | 2023.03.10 |
| enum을 값 배열로 변환(배열 내 모든 JSON 값 배치) (0) | 2023.03.10 |
| 스프링 부트용 임베디드 레디스 (0) | 2023.03.10 |