Tôi đang thực hiện một nhiệm vụ hàng đêm để xây dựng một tiện ích sử dụng một lần tùy chỉnh .
Ngay sau khi một phiên bản của nó đã được thêm vào bảng điều khiển bên trong Tùy biến , điều khiển của nó trên bảng Widgets có sẵn sẽ được hiển thị dưới dạng bị vô hiệu hóa (hoặc thay vào đó, biến mất hoàn toàn).
Đây là giao diện của nó (lưu ý tiện ích trực quan đã bị vô hiệu hóa ở bên phải):
Widget tùy chỉnh đã được đăng ký và tất cả, nhưng tôi bị kẹt ở yêu cầu sử dụng một lần.
Thông số kỹ thuật
- Quy mô không phải là một vấn đề. Chỉ có thể giả sử chỉ có 1 thanh bên được đăng ký. Cách tiếp cận có thể là giới hạn việc sử dụng widget ở mức 1 trên mỗi thanh bên hoặc 1 trên tất cả các sidebars đã đăng ký, cả hai đều ổn như nhau cho đến bây giờ.
- Trang Widgets ở mặt sau không phải là vấn đề. Điều này không bắt buộc để hoạt động tốt như nhau trên trang Widgets bên dưới Giao diện ở mặt sau. Nó chỉ phải làm việc trong Customizer.
Câu hỏi
- Khoảng 250 năm trước, tất cả các vật dụng được sử dụng là một lần sử dụng. Có ai biết một cách hợp pháp để đưa những lần đó trở lại và làm cho một widget tùy chỉnh chỉ được sử dụng 1x thông qua API Widget không?
- Nếu không (mà tôi giả sử sau khi đã đào qua một số lượng lớn các tệp cốt lõi), có lẽ tôi đã trì hoãn cách tiếp cận dựa trên CSS (các sự kiện con trỏ, lớp phủ phần tử giả, bất cứ điều gì). Bất kỳ loại linh hồn nào cũng giúp tôi hiểu biết về Trình tùy chỉnh / JavaScript rất hạn chế của tôi với cách tiếp cận cơ bản về cách thêm / xóa lớp CSS chuyên dụng vào điều khiển tiện ích trong bảng điều khiển có sẵn của Wap (bên phải) khi một ví dụ của tiện ích đã nói đã được thêm / xóa vào bảng điều khiển bên?
Những gì tôi đã cố gắng cho đến nay
- Đào qua một đoạn công bằng của các tập tin cốt lõi.
- Đọc cái này , cái này , nhưng không ai có vẻ thực tế.
- Tinkered với jQuery sự kiện
widget-added
,widget-updated
vàwidget-synced
, nhưng bỏ lỡ một sự kiện cho “phụ tùng đã xóa”.
Cảm ơn tấn trước!
Cập nhật: Dĩ nhiên, tôi chưa đưa bằng chứng về khái niệm của mình lên một repo công khai, tất nhiên sẽ làm được.
Giải pháp
Tôi đã gói giải pháp vui lòng chia sẻ bởi kraftner bên dưới trong một bằng chứng về plugin khái niệm trên GitHub .
WP_Widget
, ví dụ: gist.github.com/westonruter/7141599