Đâ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-plugin
my-plugin.php
Phương pháp Model View Controller (MVC)
/wp-content
/plugins
/my-plugin
/controller
Controller.php
/model
Model.php
/view
view.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
/admin
admin.php
/assets
css/
images/
/classes
my-class.php
/lang
my-es_ES.mo
/templates
my-template.php
/widgets
my-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
/partials
my-plugin-admin.php
/includes
my_plugin_activator.php
my_plugin_deactivator.php
my_plugin_i18n.php
my_plugin_loader.php
my_plugin.php
/languages
my_plugin.pot
/public
/css
/js
/partials
my-plugin-public.php
LICENSE.txt
README.txt
index.php
my-plugin.php
uninstall.php
Phương pháp tổ chức lỏng lẻo
/wp-content
/plugins
/my-plugin
css/
images/
js/
my-admin.php
my-class.php
my-template.php
my-widget.php
my-plugin.php
css/
, images/
và js/
sẽ là styles/
, images/
và scripts/
.