Đây không phải là câu hỏi về cách xây dựng plugin WordPress. Thay vào đó, những gì, nếu có, hướng dẫn có thể được áp dụng cho cách kết hợp kiến trúc tệp của bất kỳ plugin nào.
Một số ngôn ngữ lập trình hoặc thư viện khác có các cách tổ chức thư mục và tệp rất được kiểm soát. Đôi khi điều này gây khó chịu và làm nổi bật sự tự do mà PHP mang lại, nhưng trên các plugin WordPress mặt trái được đặt cùng nhau theo bất kỳ cách nào được xác định bởi tác giả của chúng.
Không có câu trả lời đúng , nhưng hy vọng của tôi là tinh chỉnh cách tôi và những người khác xây dựng các plugin để làm cho chúng thân thiện hơn với các nhà phát triển khác để xử lý, dễ gỡ lỗi hơn, dễ điều hướng hơn và có thể hiệu quả hơn.
Câu hỏi cuối cùng: những gì bạn nghĩ là cách tốt nhất để tổ chức một plugin?
Dưới đây là một vài cấu trúc mẫu, nhưng không có cách nào là một danh sách đầy đủ. Hãy thêm các khuyến nghị của riêng bạn.
Cấu trúc mặc định giả định
/wp-content/plugins/my-pluginmy-plugin.php
Phương pháp Model View Controller (MVC)
/wp-content/plugins/my-plugin/controllerController.php
/modelModel.php
/viewview.php
my-plugin.php
Ba phần của MVC:
- Các mô hình tương tác với cơ sở dữ liệu, truy vấn và lưu dữ liệu, và chứa logic.
- Bộ điều khiển sẽ chứa các thẻ mẫu và các chức năng mà chế độ xem sẽ sử dụng.
- Khung nhìn có trách nhiệm hiển thị dữ liệu được cung cấp bởi mô hình như được xây dựng bởi bộ điều khiển.
Tổ chức theo phương pháp loại
/wp-content/plugins/my-plugin/adminadmin.php
/assetscss/images/
/classesmy-class.php
/langmy-es_ES.mo
/templatesmy-template.php
/widgetsmy-widget.php
my-plugin.php
Plugin nồi hơi WordPress
Có sẵn trên Github
Dựa trên API Plugin , Tiêu chuẩn mã hóa và Tiêu chuẩn tài liệu .
/wp-content/plugins/my-plugin/admin/css/js/partialsmy-plugin-admin.php
/includesmy_plugin_activator.phpmy_plugin_deactivator.phpmy_plugin_i18n.phpmy_plugin_loader.phpmy_plugin.php
/languagesmy_plugin.pot
/public/css/js/partialsmy-plugin-public.php
LICENSE.txtREADME.txtindex.phpmy-plugin.phpuninstall.php
Phương pháp tổ chức lỏng lẻo
/wp-content/plugins/my-plugincss/images/js/my-admin.phpmy-class.phpmy-template.phpmy-widget.phpmy-plugin.php
css/, images/và js/sẽ là styles/, images/và scripts/.