Trang cài đặt 'Toàn cầu' cho plugin nhiều trang


24

Tôi đang làm việc trên một plugin sẽ được cài đặt trong một ví dụ nhiều trang.

Làm cách nào để tôi tạo một trang cài đặt duy nhất chỉ hiển thị ở cấp độ "Quản trị viên mạng" - hầu hết các hướng dẫn tôi đã thấy liên quan đến plugin cấp độ blog tiêu chuẩn. Bất kỳ liên kết đến thông tin nào cũng sẽ hữu ích, nếu không tôi sẽ chỉ xem qua các thẻ liên kết để xem nó được thực hiện ở đó như thế nào.

[Cập nhật]

Trông giống như sitewide_tags sử dụng add_site_option, get_site_optionupdate_site_option, và các chức năng sử dụng wp_sitemeta. Tuy nhiên, từ những gì tôi có thể thấy, không có hỗ trợ nào cho register_setting, add_setting, v.v., vì vậy bạn phải lấy và đặt các tùy chọn của mình theo cách thủ công.

Câu trả lời:


6

Làm tài liệu tham khảo

Để tạo cài đặt mạng hoặc toàn cầu, bạn cần làm như sau

  • Thêm trang cài đặt

    add_submenu_page( 'settings.php'... # cf options.php for blog level`
  • Thêm tùy chọn toàn cầu

    add_site_option($key,$value)
  • Cập nhật tùy chọn toàn cầu

    update_site_option($key,$value)
  • Nhận một tùy chọn trang web

    get_site_option($key)

Cài đặt chung được lưu vào sitemetabảng (cài đặt blog cá nhân được lưu vào <blog_id>_optionsbảng

  • Tôi nghĩ rằng các chức năng API cài đặt ở cấp blog - vì vậy sử dụng bảng tùy chọn, không phải sitemeta. Vì vậy, bạn không thể sử dụng các nhóm tùy chọn và tương tự ở cấp độ mạng ( vui lòng nhận xét nếu tôi gặp phải lỗi này )

0

Chà, tôi đã đối mặt với nhu cầu tương tự gần đây, nhưng cũng không biết câu trả lời. Mặc dù không phải là một câu trả lời cho câu hỏi của bạn một cách rõ ràng, một cách khác là chỉ tạo các trang tùy chọn trong các tùy chọn của blog 'chính' và kiểm tra xem nhiều trang có được bật hay không.

Không phải là cách lý tưởng, nhưng nếu (như tôi) bạn chỉ đang tạo một plugin nội bộ cho mục đích sử dụng của riêng bạn, thì nó hoàn toàn khả thi. Nó cũng có lợi thế là tất cả các chức năng thông thường cho các trang quản trị đều khả dụng - chúng chưa có trong bối cảnh trang quản trị mạng toàn cầu.


0

Khi bạn sử dụng add_submenu_page(), add_menu_page()v.v. và mong các trang cài đặt xuất hiện trong bảng điều khiển nhiều trang của bạn, hãy cân nhắc sử dụng network_admin_menuhook thay vìadmin_menu

Thí dụ:

add_action( 'network_admin_menu', 'network_settings_page' );
function network_settings_page(){
    add_submenu_page(

        ...
    )
}

Để lưu cài đặt, bạn có thể sử dụng network_admin_edit_{ACTION}hook hành động.

Tham khảo: https://rudrastyh.com/wordpress-multisite/custom-tabs-with-options.html

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.