Đã đọc ở đâu đó trên Stack của hai plugin WP buộc các vị trí menu giống hệt nhau (với khả năng một plugin không xuất hiện), tôi tự hỏi làm thế nào tôi có thể kiểm soát vị trí của các mục menu được thêm bởi plugin.
Tôi đã sử dụng một chức năng dường như xử lý các mục menu con như vậy trong 'cài đặt' và một chức năng khác để sắp xếp lại mặc định (bài viết, trang, chủ đề, plugin, cài đặt, v.v.) các mục 'cấp cao nhất' - nhưng không thay đổi định vị của các mục như vậy được thêm bởi các plugin.
function custom_menu_order() {
return array(
//Add items here in desired order.
);
}
add_filter( 'custom_menu_order', '__return_true' );
add_filter( 'menu_order', 'custom_menu_order' );
Ví dụ: trong số hai mục trình đơn cấp cao nhất được thêm bởi WooC Commerce, một mục xuất hiện phía trên mục được thêm bởi ContactForm7 và mục còn lại bên dưới, và thật tuyệt khi sắp xếp lại chúng theo cách phù hợp - và cũng có thể sắp xếp lại các mục tốt hơn mà không buộc một vị trí menu và thay vào đó xuất hiện ở phía dưới.
Tôi thấy nó thường hoạt động tốt khi đặt hàng lại mặc định và các mục 'edit.php? Post_type = ...', nhưng các mục có 'admin.php? Page = ...' không đặt hàng lại.
Khi chức năng đặt hàng lại của tôi bị vô hiệu hóa, hai mục WooC Commerce ('edit.php? Post_type = sản phẩm' và 'edit.php? Post_type = shop_order') cùng nhau như dự định, nhưng khi chức năng được kích hoạt lại, chúng sẽ bị chia tách bởi ContactForm7 ('admin.php? page = wpcf7').
Và, một ('edit.php? Post_type = shop_order') của CPT WooC Commerce sẽ không sắp xếp lại - mặc dù cái khác ('edit.php? Post_type = sản phẩm').