Cách tùy chỉnh plugin trong khi duy trì khả năng nâng cấp


8

Tôi hiện đang làm việc trên một bản cập nhật lớn cho một trong các plugin WordPress của mình.

Plugin cho phép người dùng chọn từ một số giao diện có sẵn. Tôi thường xuyên được yêu cầu tạo ra một làn da tùy chỉnh. Để ngăn làn da này bị xóa khi nâng cấp, tôi phải sử dụng hook WordPress để vô hiệu hóa cập nhật tự động cho plugin. Điều này rõ ràng là không lý tưởng vì tôi muốn họ vẫn có thể cập nhật plugin. Vấn đề là cách WordPress xử lý các bản cập nhật - nó chỉ đơn giản là xóa thư mục plugin và cài đặt phiên bản mới. Do đó, loại bỏ các tập tin không thực sự là một phần của phiên bản cũ.

Hiện tại cách duy nhất tôi có thể giải quyết là có hai thư mục giao diện - một trong thư mục plugin và một trong thư mục tải lên - đây có thực sự là cách duy nhất tôi có thể cung cấp cho người dùng của mình không?

Câu trả lời:


4

Nhiều plugin sử dụng /wp-content/custom-plugin-folder/để lưu trữ dữ liệu plugin tùy chỉnh (WPTouch xuất hiện trong tâm trí).

Chỉ cần sử dụng các hằng số WP_CONTENT_URLWP_CONTENT_DIR Tài liệu để kiểm tra sự tồn tại của thư mục của bạn và truy xuất mọi giao diện có sẵn.

Bài viết sau, mặc dù không liên quan trực tiếp đến Câu hỏi này, giải thích tầm quan trọng của các plugin / chủ đề để tìm kiếm bản dịch trước trong wp-content/languagesthư mục trước khi tải các .motệp được đóng gói của chính nó . Đây là một cuốn sách đáng đọc và hy vọng bạn sẽ áp dụng khái niệm này trong phiên bản tiếp theo của mình :)

Tải các tệp ngôn ngữ WordPress đúng cách tôi muốn chỉ ra rằng điều quan trọng là tải các tệp ngôn ngữ người dùng tùy chỉnh từ WP_LANG_DIR trước khi bạn tải các tệp ngôn ngữ đi kèm với plugin . Khi nhiều tệp mo được tải cho cùng một tên miền, bản dịch tìm thấy đầu tiên sẽ được sử dụng. Bằng cách này, các tệp ngôn ngữ được cung cấp bởi plugin sẽ đóng vai trò dự phòng cho các chuỗi không được dịch bởi người dùng.
http://www.geertdedeckere.be/


7

Một cách khác là để mọi người thêm plugin phụ của riêng họ. Ví dụ: mã trong plugin lõi của bạn có giao diện có thể giống như:

function get_available_skins() {
    $skins[] = '/includes/default-skin.css';
    $skins[] = '/includes/2012-skin.css';

    return apply_filters( 'get_available_skins', $skins );
}

Sau đó, người dùng có thể tạo một plugin tùy chỉnh nằm bên cạnh của bạn (được kích hoạt riêng để nó không can thiệp vào bản cập nhật của bạn), thực hiện như sau:

add_filter( 'get_available_skins', 'my_custom_skin' );
function my_custom_skin( $skins ) {
    $skins[] = '/my-custom-skin.css';

    return $skins;
}

Đây là cách chính xác giống như WordPress sử dụng các hook để làm cho nó có thể mở rộng. Đừng phát minh lại bánh xe.

(Rõ ràng, tôi không biết bạn đang làm việc với plugin nào, giao diện tùy chỉnh trông như thế nào hoặc cách bạn mã hóa mọi thứ, vì vậy bạn sẽ phải sử dụng mã ở trên chỉ để làm mô hình cho cách bạn có thể cấu trúc lại mã riêng.)

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.