반응형
선택한 사용자 지정 관리 하위 메뉴를 수동으로 설정하는 방법은 무엇입니까?
저는 제 첫 워드프레스 플러그인을 개발하고 있습니다.다음과 같은 관리 페이지가 있다고 가정해 보겠습니다.
- 일반 설정
- 새 공급업체 추가
- 벤더
- 공급업체 편집
여기서 메뉴에서 Edit Vendor를 표시하지 않고 Vendor 페이지의 링크를 사용하여 액세스할 수 있도록 설정합니다.내 메뉴 및 공급업체 페이지는 다음과 같습니다.
메뉴를 생성하는 코드:
function nes_general_settings_view () {
require_once("views/admin/general_settings.php");
}
function nes_vendor_view () {
require_once("views/admin/vendor.php");
}
function nes_vendor_new_view () {
require_once("views/admin/vendor_new.php");
}
function nes_vendor_edit_view () {
require_once("views/admin/vendor_edit.php");
}
add_action("admin_menu", function () {
add_menu_page(
"Service",
"Service",
"manage_options",
"nes_general_settings",
"nes_general_settings_view",
null,
4
);
add_submenu_page( "nes_general_settings", "General Settings", "General Settings", 0, "nes_general_settings", "nes_general_settings_view");
add_submenu_page( "nes_general_settings", "Vendors", "Vendors", 0, "nes_vendor", "nes_vendor_view");
add_submenu_page( "nes_general_settings", "New Vendor", "New Vendor", 0, "nes_vendor_new", "nes_vendor_new_view");
add_submenu_page( "nes_fake_id", "Edit Vendor", "Edit Vendor", 0, "nes_vendor_edit", "nes_vendor_edit_view");
});
공급업체 편집 페이지 링크를 생성하는 코드:
<a href="<?=admin_url("admin.php?page=nes_vendor_edit")?>">Edit</a>
그러나 공급업체 편집 페이지에 있으면 메뉴가 선택되지 않습니다.
공급업체 편집에 있을 때 선택한 서비스 > 공급업체 하위 메뉴를 설정하는 방법?
하위 메뉴가 사용자 지정 게시 유형인 경우 사용자 지정 게시 유형을 생성할 때 정의한 슬러그로 "show_in_menu"의 사용자 지정 게시 유형 매개 변수를 설정하여 사용자 지정 메뉴의 하위 메뉴 항목으로 쉽게 정의할 수 있습니다.이렇게 하면 기본 메뉴 열기/닫기 및 관리 메뉴의 현재 하위 메뉴 항목이 강조 표시됩니다.
예를 들어,
/* ————————————————————————— */
/* Content Types Menu Item
/* ————————————————————————— */
add_menu_page(
'Content Types',
'Content Types',
'manage_options',
'custom-content', // menu slug
'ds_create_new_submenu',
'dashicons-editor-table',
null
);
그런 다음 사용자 지정 게시물 유형에서 show_in_메뉴를 메뉴 슬러그와 일치하도록 정의합니다.
$args = array(
'labels' => $labels,
'menu_icon' => 'dashicons-format-status',
'capability_type' => 'manage_options',
'show_in_menu' => 'custom-content'
);
단순화를 위해 단축된 코드 예제
관리 메뉴에 적절한 클래스를 추가하려면 jQuery를 사용해야 합니다.
다음을 사용하여 스크립트를 인쇄합니다.
# Grab the slug to print only in this screen
$hook = add_submenu_page(
null, # better than fake id
"Edit Vendor",
"Edit Vendor",
'manage_options', # IMPORTANT, don't use levels (0-9), they're deprecated
"nes_vendor_edit",
function() {
echo '<h1>nes_vendor_edit_view</h1>';
}
);
add_action( "admin_footer-$hook", function()
{
# http://stackoverflow.com/questions/5673269/what-is-the-advantage-of-using-heredoc-in-php
echo <<<HTML
<script type="text/javascript">
jQuery(document).ready( function($) {
$('#toplevel_page_nes_general_settings')
.addClass('current wp-has-current-submenu wp-menu-open');
});
</script>
HTML;
});
언급URL : https://stackoverflow.com/questions/23468919/how-to-manually-set-a-custom-admin-submenu-selected
반응형
'programing' 카테고리의 다른 글
컴파일 오류: 프로그램의 stray '\302' 등 (0) | 2023.09.13 |
---|---|
XML에서 따옴표를 사용합니다. 한 개입니까, 두 개입니까? (0) | 2023.09.13 |
PowerShell 문자열 기본 매개 변수 값이 예상대로 작동하지 않음 (0) | 2023.09.08 |
데이터베이스 쿼리 선택 mariadb maxscale에서 자주 호출됨 (0) | 2023.09.08 |
HTML 사이트에 사용자 지정 글꼴을 설치하는 방법 (0) | 2023.09.08 |