Đặt Menu Loại bài đăng tùy chỉnh Phía trên Menu Bài viết bằng menu_poseition?


Câu trả lời:


14

Vị trí cho các mục menu chính

  • 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

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


4

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?


2

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


2

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?


Giải pháp rất mong manh dựa vào số ma thuật . Nó sẽ bị hỏng ngay khi một số plugin khác được thêm / xóa để đặt một mục trong số các plugin khác.
Walf


1

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.


Điều này đã không làm việc cho tôi. Tôi đã đặt nó trong plugin sitewide của mình, nơi tập tin tùy chỉnh-post-type.php của tôi là
Daniel

1

đâ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.


1

Đố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.


0

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_positionthà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 Dashboardliên kết.


Tôi đã thử 4 nhưng nó giống hệt như 5.
janoChen

Hrm. Đã thử 1-3? Tôi nghĩ có lẽ "1" (hoặc "0") là Bảng điều khiển. Có lẽ thứ gì đó 2-3 sẽ hoạt động
Zack

0 1 2 3 Đi trước Bảng điều khiển và 4 lượt bên dưới Bài viết. Thật sự là không thể!
janoChen

Ồ WordPress bị hỏng nhiều? Tôi không biết nữa. : - /
Zack

Tôi nghĩ rằng 4 là dấu phân cách ngay trên Bài viết và 5 là Bài viết, vì vậy nếu bạn đặt vị trí menu của mình thành 3 thì nó sẽ ở ngay trước dấu phân cách. Với cấu hình mặc định tất nhiên. Đặt trang plugin của tôi thành 4 ghi đè lên dấu phân cách, nhưng đã xuất hiện ngay phía trên Bài viết. hmmm ...
Goldenapples

0

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 );
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.