Bagaimana cara Wordpress menentukan "file plugin utama"?
Ini adalah file di plugin Anda yang berisi komentar header 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
*/
T1: Apakah legal / didukung untuk memiliki plugin yang terstruktur seperti ini:
Iya. Setiap struktur direktori (sejauh didukung oleh server) adalah sah.
T2: Jika demikian, bagaimana cara wordpress menentukan file php mana yang merupakan file plugin utama?
Lihat di atas ↑
T3: Apakah penggunaan subdirektori (seperti inc / dalam contoh di atas) merupakan persyaratan ketika kode PHP mencakup beberapa modul?
Kebutuhan? Tidak. Lebih enak dibaca: ya. Lebih mudah dirawat: Juga ya.
T4: Apakah benar bahwa seharusnya ada SATU file php di direktori plugin utama?
Tidak. Tidak.
Jumlahkan
Cara Anda mengatur file dan direktori sepenuhnya tergantung pada Anda, preferensi pribadi Anda dan tidak ada yang lain. Jika Anda ingin membuatnya lebih mudah untuk Anda pelihara dan bagi pengembang lain untuk menelusuri kode Anda, maka Anda harus menggunakan semacam organisasi file / direktori.
Contohnya
Saya pribadi menambahkan .class.php
sebagai ekstensi, ketika saya mendapat kelas di dalamnya. Saya juga memberi nama file saya tepat seperti kelas. Alasannya sederhana: "File plugin utama" saya - yang merupakan bootstrap
kelas saya , biasanya peduli tentang memuat semua hal yang diperlukan.
// 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 );
}
}
Ini berarti kelas dan file saya dinamai seperti berikut:
settings.class.php
DAN settings_extended.class.php
my_class_prefix_settings
DAN my_class_prefix_settings_extended
Saya juga melakukan beberapa organisasi direktori dasar, seperti menyimpan semua js/css/img
file dalam direktori bernama seperti ini.
Beberapa orang menggunakan folder (untuk plugin yang lebih besar) yang diberi nama inc/includes/assets/extensions/lib/etc.
. Saya akan merekomendasikan untuk menggunakan subfolder hanya untuk plugin besar. Jika Anda mendapatkan hal-hal tambahan seperti widget, dll., Maka Anda dapat menggunakan subfolder khusus untuknya.
Kata terakhir: Tidak, tidak ada yang Anda temukan benar , itu (seperti yang saya tunjukkan) hanyalah rekomendasi.