Tôi chỉ cần tìm ra tham số menu_poseition có vẻ như bạn có thể đặt menu của loại bài đăng tùy chỉnh của bạn gần như ở mọi nơi. Ngoại trừ phía trên menu Bài viết!
Làm thế nào tôi có thể hoàn thành nó?
Tôi chỉ cần tìm ra tham số menu_poseition có vẻ như bạn có thể đặt menu của loại bài đăng tùy chỉnh của bạn gần như ở mọi nơi. Ngoại trừ phía trên menu Bài viết!
Làm thế nào tôi có thể hoàn thành nó?
Câu trả lời:
Vị trí cho các mục menu chính
Mô tả tham số cho "vị trí menu"
$position
( số nguyên ) ( tùy chọn ) Vị trí trong menu thứ tự menu này sẽ xuất hiện. Theo mặc định, nếu tham số này bị bỏ qua, menu sẽ xuất hiện ở dưới cùng của cấu trúc menu. Con số càng cao, vị trí của nó trong menu càng thấp.CẢNH BÁO: nếu hai mục menu sử dụng cùng một thuộc tính vị trí, một trong các mục có thể được ghi đè để chỉ một mục hiển thị! Rủi ro xung đột có thể được giảm bằng cách sử dụng số thập phân thay vì giá trị nguyên, ví dụ 63.3 thay vì 63.
Mặc định: dưới cùng của cấu trúc menu
Plugin JetPack mới đặt liên kết menu của nó ngay bên dưới liên kết Bảng điều khiển. Nó làm như vậy bằng cách đặt thứ tự menu của nó thành 0, bằng cách lọc mảng $ menu_order :
function jetpack_menu_order( $menu_order ) {
$jp_menu_order = array();
foreach ( $menu_order as $index => $item ) {
if ( $item != 'jetpack' )
$jp_menu_order[] = $item;
if ( $index == 0 )
$jp_menu_order[] = 'jetpack';
}
return $jp_menu_order;
}
Vì tò mò, điều gì sẽ xảy ra nếu bạn thử 0 dưới dạng menu_poseition?
Tôi đã sử dụng 'menu_postion' => 0, 1,2,3,4.
Không quan trọng thực sự. Nếu bạn chơi xung quanh với nó, bạn có thể dễ dàng tìm ra nó.
Sử dụng 'menu_poseition' => 1 sẽ đặt nó bên dưới mục menu Bảng điều khiển phía trên mục phân cách. 0 Nên đặt nó phía trên Bảng điều khiển
Tìm kiếm một giải pháp trên web nhưng không tìm thấy. Đơn giản chỉ cần thực hiện thủ thuật này (ví dụ). Ở đây bạn có danh sách các vị trí gốc:
- Bảng điều khiển 2
- 4 dải phân cách
- 5 bài viết
- 10 phương tiện truyền thông
- 15 liên kết
- 20 trang
- 25 Bình luận
- 59 Dấu phân cách
- 60 Xuất hiện
- 65 plugin
- 70 người dùng
- 75 công cụ
- 80 cài đặt
- Máy phân tách 99
Nếu bạn có nhiều mặt hàng hơn, bạn có thể đọc vị trí hiện tại cho từng mặt hàng bằng cách in menu $ toàn cầu:
global $menu;
print_r($menu);
Vì vậy, nếu tôi hiểu rõ, không có gì có thể ngăn chúng tôi đặt lại thực đơn như chúng tôi muốn:
function re_order_menu () {
// ------- Put away items
$dashboard = $menu[2]
$separator1 = $menu[4]
$posts = $menu[5]
$media = $menu[10]
$links = $menu[15]
$pages = $menu[20]
$comments = $menu[25]
$separator2 = $menu[59]
$appearance = $menu[60]
$plugins = $menu[65]
$users = $menu[70]
$tools = $menu[75]
$settings = $menu[80]
$separator3 = $menu[99]
// -------- Reset menu
unset($menu[2]);
unset($menu[4]);
unset($menu[5]);
unset($menu[10]);
unset($menu[15]);
unset($menu[20]);
unset($menu[25]);
unset($menu[59]);
unset($menu[60]);
unset($menu[65]);
unset($menu[70]);
unset($menu[75]);
unset($menu[80]);
unset($menu[99]);
// -------- Re-order menu as you want
$dashboard = $menu[2];
$separator1 = $menu[4]
$posts = $menu[5];
$books = $menu[6];
/* my tons of custom items */
$authors = $menu[7];
$requests = $menu[8];
$clients = $menu[9];
$sellers = $menu[10];
$services = $menu[11];
$schedules = $menu[12];
/* let some space after */
$media = $menu[30];
$links = $menu[31];
$pages = $menu[32];
$comments = $menu[33];
$separator2 = $menu[59];
$appearance = $menu[60];
$plugins = $menu[65];
$users = $menu[70];
$tools = $menu[75];
$settings = $menu[80]
$separator3 = $menu[99];
}
add_action('admin_menu', 're_order_menu');
Nó hoạt động tốt với tôi vì vậy, tôi nghĩ rằng điều này là hợp pháp, tôi sai?
Đây là một lỗi trong WordPress. Vui lòng xem chủ đề này trong Trac: http://core.trac.wordpress.org/ticket/14755
Đã sửa trong 4.4 ...
https://developer.wordpress.org/reference/fifts/add_menu_page/#notes
Bạn có thể sử dụng điều này:
function my_move_post () {
global $menu;
$menu[6] = $menu[5]; //move post from post 5 to 6
unset($menu[5]); //free the position 5 so you can use it!
}
add_action('admin_menu', 'my_move_post');
Bây giờ bạn có thể sử dụng vị trí 5 để thêm menu của bạn ở trên menu Post.
đây là sự cảnh báo cho toàn bộ vấn đề ...
WordPress 4.9.2
wp-admin / menu.php:
// If we're to use $_wp_last_object_menu, increment it first.
$ptype_menu_position = is_int( $ptype_obj->menu_position ) ? $ptype_obj->menu_position : ++$_wp_last_object_menu;
THÔNG BÁO: phải là số nguyên và KHÔNG được đặt, nếu không, nó sẽ nằm ở cuối danh sách.
Đối với một giải pháp hoạt động trong WordPress 5 trở xuống, hãy định vị lại nó bằng mã sau:
add_filter('custom_menu_order', '__return_true');
add_filter('menu_order', function($menu_order) {
if (
false !== ($k1 = array_search($v1 = 'edit.php', $menu_order))
&& false !== ($k2 = array_search($v2 = 'edit.php?post_type=foo', $menu_order))
) {
array_splice($menu_order, $k1, 0, $v2);
array_splice($menu_order, $k2 + 1, 1);
}
return $menu_order;
});
Điều này giả định rằng bạn không có nhiều hơn một mục menu ganh đua cho vị trí cực.
Trên cùng một liên kết bạn đã liên kết, nó đọc:
menu_position
(integer) (optional) The position in the menu order the post type should appear.
Default: null - defaults to below Comments
5 - below Posts
10 - below Media
20 - below Pages
60 - below first separator
100 - below second separator
Vì vậy, nếu bạn đặt menu_position
thành một cái gì đó như thế 4
, thì nó nên đặt nó ở trên bài viết.
Một vị trí -1
đặt nó trên Dashboard
liên kết.
Bạn có thể sử dụng các giá trị thập phân (dưới dạng chuỗi). Ví dụ: tôi có một số loại bài đăng tùy chỉnh mà tôi đã đặt ở vị trí cuối cùng trong menu (100001, 100002, 100003).
Sau đó, chỉ cần đặt mã này để di chuyển chúng lên trên Bài viết và bên dưới các mục menu Bảng điều khiển .
function reorder_admin_menu() {
global $menu;
// Add one separator
$menu["3.1"] = array(
0 => '',
1 => 'read',
2 => 'separator_' . "anything_unique",
3 => '',
4 => 'wp-menu-separator'
);
// I have put my menu items waay at the end (exactly these values), so move them up
$menu["3.2"] = $menu[100001];
$menu["3.3"] = $menu[100002];
$menu["3.4"] = $menu[100003];
unset($menu[100001]);
unset($menu[100002]);
unset($menu[100003]);
// move Media menu (position 10) item to front, in the same group
$menu["3.5"] = $menu[10];
unset($menu[10]);
// Debug: ksort($menu); error_log( var_export( $menu, true ) );
}
add_action( 'admin_menu', 'reorder_admin_menu', 999 );