Làm thế nào PHẢI thư mục cho một plugin được cấu trúc?


9

Tôi có được khái niệm plugin cơ bản. Tôi đã đọc bài viết về Codex về Viết Plugin

Bài báo đó nói về "tập tin plugin chính".

Wordpress xác định "tệp plugin chính" như thế nào?

Q1:
Có hợp pháp / được hỗ trợ để có một plugin có cấu trúc như thế này không:

  • pluginname /
  • pluginname / mainfile.php
  • pluginname / hỗ trợ mã-1.php
  • pluginname / hỗ trợ mã-2.php
  • pluginname / Readme.txt
  • Vân vân..

?

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?


Tôi đã thấy các khuyến nghị có nội dung "Tôi cấu trúc mã của mình theo cách này ":

  • pluginname /
  • pluginname / mainfile.php
  • pluginname / inc / hỗ trợ mã-1.php
  • pluginname / inc / hỗ trợ mã-2.php
  • pluginname / Readme.txt
  • Vân vâ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?

Q4:
Có đúng là nên có tối đa MỘT tệp php trong thư mục plugin chính không?

Cảm ơn.


Chắc chắn câu hỏi đầu tiên của bạn 'Làm thế nào để WordPress xác định tệp PHP chính' được trả lời trực tiếp trong hướng dẫn chính 'Viết plugin' trên tiêu đề tệp
icc97

Câu trả lời:


12

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.phplà 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à bootstraplớ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.phpsettings_extended.class.php
  • my_class_prefix_settingsmy_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/imgcá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.


1
Cảm ơn bạn cho câu trả lời này. Vì vậy, nhận xét tiêu đề là cách wordpress tìm thấy "tệp plugin chính". Nó chỉ tải cái đó thôi, đúng không? Và tất nhiên bất kỳ tập tin php phụ nào khác được yêu cầu hoặc bao gồm bởi tập tin đó. Chính xác? Tôi đoán nó không rõ ràng với tôi trong bộ luật. Tôi vừa đọc lại, và tôi thấy những gì nó nói bây giờ. Tôi ước nó sẽ nói một cái gì đó như "Wordpress tìm kiếm một tệp trong zip của bạn có tiêu đề đặc biệt này; nó bỏ qua các tệp khác trong zip." Hoặc một cái gì đó dọc theo các đường dây. dù sao cũng cảm ơn.
Cheeso

Có, nó chỉ tải các tệp mà bạn chỉ định cộng với tệp "chính". Xin lưu ý rằng có các móc có các phần cụ thể của trang, để ngăn tải mọi thứ theo mọi yêu cầu.
kaiser
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.