Wordpress xác định "tệp plugin chính" như thế nào?
Đây là tệp trong plugin của bạn chứa bình luận tiêu đề plugin
/**
* Plugin Name: A fresh example
* Plugin URI: http://example.com
* Description: Foo makes a bar
* Version: 2012-06-14.1426
* Author: John Doe
* Author URI: http://example.com
* TextDomain: your_textdomain
* License: MIT
* LicenseURI: http://www.opensource.org/licenses/mit-license.php
*/
Q1: Có hợp pháp / được hỗ trợ để có một plugin có cấu trúc như thế này không:
Đúng. Mọi cấu trúc thư mục (theo như được hỗ trợ bởi các máy chủ) là hợp pháp.
Câu 2: Nếu vậy, làm thế nào để wordpress xác định tệp php nào là tệp plugin chính?
Xem ở trên
Câu 3: Việc sử dụng thư mục con (như inc / trong ví dụ trên) có phải là một yêu cầu khi mã PHP kéo dài nhiều mô-đun không?
Yêu cầu? Không. Nicer để đọc: có. Dễ bảo trì hơn: Cũng có.
Q4: Có đúng là nên có tối đa MỘT tệp php trong thư mục plugin chính không?
Không. Đơn giản là không.
Tóm tắt
Cách bạn tổ chức các tệp và thư mục của bạn hoàn toàn tùy thuộc vào bạn, sở thích cá nhân của bạn và không có gì khác. Nếu bạn muốn giúp bạn dễ dàng duy trì hơn và để các nhà phát triển khác bước qua mã của bạn, thì bạn nên sử dụng một số loại tổ chức tệp / thư mục.
Ví dụ
Cá nhân tôi nối thêm .class.php
là phần mở rộng, khi tôi có một lớp trong đó. Tôi cũng đặt tên cho các tập tin của tôi đúng như lớp học. Lý do rất đơn giản: "tập tin plugin chính" của tôi - đó là bootstrap
lớp của tôi , thường quan tâm đến việc tải tất cả những thứ cần thiết.
// inside my PREFIX_bootstrap class:
public static $includes = array(
'settings' => false // Parent class - no need to hook
,'settings_extended' => true // Extending class - hooks static init() on `init` hook
);
public function construct()
{
// The prefix for every class in my plugin
$prefix = 'my_class_prefix_';
foreach ( $this->files as $handle => $hook )
{
require_once plugin_dir_path( __FILE__ )."{$handle}.class.php";
if ( ! $hook )
continue;
$class = $prefix.$handle;
class_exists( $class ) AND add_action( 'init', array( $class, 'init' ), 1 );
}
}
Điều này có nghĩa là các lớp và tệp của tôi được đặt tên như sau:
settings.class.php
VÀ settings_extended.class.php
my_class_prefix_settings
VÀ my_class_prefix_settings_extended
Tôi cũng làm một số tổ chức thư mục cơ bản, như lưu trữ tất cả js/css/img
các tệp trong các thư mục có tên như thế này.
Một số người sử dụng các thư mục (cho plugin lớn hơn) được đặt tên inc/includes/assets/extensions/lib/etc.
. Tôi khuyên bạn chỉ nên sử dụng các thư mục con cho các plugin lớn. Nếu bạn có các công cụ bổ sung như widget, v.v., thì bạn có thể sử dụng các thư mục con cụ thể cho chúng.
Từ cuối cùng: Không, không có gì bạn tìm thấy là đúng , những thứ đó (như những thứ tôi chỉ cho bạn) chỉ là đề xuất.