Có bất kỳ lý do nào bạn không thể sử dụng chuỗi cho vị trí menu quản trị viên?


7

Khi tương tác với menu quản trị, ví dụ thông qua add_menu_page, có một $positiontham số. Các tài liệu nội tuyến chỉ ra rằng đây phải là một số nguyên. Codex đồng ý, nhưng thêm một lưu ý rằng bạn có thể sử dụng float nếu bạn biến nó thành một chuỗi (ví dụ '63.3'). Trong wp-admin / gồm / menu.php , mảng được sắp xếp bằng cách so sánh các khóa với strnatcasecmp.

Với suy nghĩ này, người ta có thể đặt vị trí menu '63-foo'hoặc '63-bar'để tránh xung đột vị trí. Điều này sẽ đặc biệt hữu ích cho các plugin, nơi chúng hiện có thể đặt một vị trí có thể gây ra xung đột trong một số chủ đề hoặc với các plugin khác.

Sử dụng chuỗi có vẻ hoạt động tốt. Tôi đã chải nguồn và không tìm thấy bất kỳ vấn đề nào, nhưng có lẽ tôi đã bỏ lỡ điều gì đó. Có bất kỳ lý do tại sao một chuỗi không thể hoặc không nên được sử dụng cho vị trí menu?


63-foothực sự tốt hơn 63? Tên plugin alpha thấp hơn sẽ (nếu đó là chuỗi) sẽ chỉ tải đầu tiên, điều này thực sự không khác gì bất kỳ plugin nào được tải lần cuối 63.
Developdaly

1
Vấn đề là nếu hai mục menu được đặt ở vị trí 63, thì mục sau sẽ ghi đè lên mục trước (âm thầm, gây ra một cú đánh đầu). Nếu một là '63 -foo 'và một cái khác là '63 -bar', cả hai sẽ hiển thị.
Matthew Boynes

Vị trí chỉ là một giá trị Boolean và nếu bạn có hai hoặc nhiều plugin có cùng giá trị vị trí, thì bạn không thể kiểm soát thứ tự này. Là công việc của WordPress. Hiện tại, nhà phát triển của chúng tôi không có khả năng kiểm soát trật tự trong mỗi lần cài đặt plugin.
bueltge

Câu trả lời:


1

Khác với việc sắp xếp với strnatcasecmp(), nơi duy nhất tôi thấy nơi có thể sử dụng khóa là nếu ai đó đang áp dụng thứ tự menu tùy chỉnh . Tuy nhiên, vì menu đã được sắp xếp dựa trên thứ tự khóa, nên chắc chắn các phím sẽ không có vai trò gì trong việc sắp xếp tùy chỉnh. Tôi không thể thấy lý do nào khác tại sao nó lại gây ra vấn đề, vì vậy có lẽ an toàn để làm. Tôi sẽ mở một vé để thay đổi các tài liệu nội tuyến.


1

Đây là một phần của kịch bản tôi đang sử dụng cho chủ đề của mình. Nó tìm kiếm một vị trí trống gần với vị trí mong muốn của bạn. Có vẻ là một giải pháp đủ đơn giản với tôi?

//work out "safe" menu position
    global $menu;
    $safe_menu_position = 30;
    //while there IS a value
    while( !empty( $menu[$safe_menu_position] ) )
    {
        --$safe_menu_position;
    }
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.