Як Wordpress визначає "основний файл плагіна"?
Саме файл у вашому плагіні містить коментар заголовка плагіна
/**
* 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: чи законно / підтримується плагін, структурований так:
Так. Кожна структура каталогів (наскільки це підтримується серверами) є законною.
Q2: Якщо так, як wordpress визначає, який файл php є основним файлом плагіна?
Дивіться вище ↑
Q3: Чи необхідність використання підкаталогу (наприклад, inc / у наведеному вище прикладі), коли код PHP охоплює кілька модулів?
Вимога? Ні. Приємніше читати: так. Простіше в обслуговуванні: також так.
Q4: Чи правда, що в головному каталозі плагінів має бути не більше одного файлу php?
Ні. Просто ні.
Підведені
Те, як ви повністю організовуєте свої файли та каталоги, залежить від вас, особистих уподобань та нічого іншого. Якщо ви хочете полегшити вам підтримку, а іншим розробникам перейти до вашого коду, тоді вам слід скористатися якоюсь організацією файлів / директорій.
Приклади
Я особисто додаю .class.php
як розширення, коли отримав у ньому клас. Я також називаю свої файли точно так само, як і клас. Причина проста: Мій "основний файл плагінів" - це мій bootstrap
клас, зазвичай піклується про завантаження всіх необхідних матеріалів.
// 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 );
}
}
Це означає, що мої класи та файли названі таким чином:
settings.class.php
І settings_extended.class.php
my_class_prefix_settings
І my_class_prefix_settings_extended
Я також займаюся базовою організацією каталогів, наприклад, зберігаю всі js/css/img
файли в таких каталогах.
Деякі люди використовують (для більших плагінів) папки, які названі inc/includes/assets/extensions/lib/etc.
. Я рекомендую використовувати підпапки лише для великих плагінів. Якщо у вас є додаткові матеріали, такі як віджети тощо, ви можете використовувати для них певні папки.
Останнє слово: Ні, нічого, що ви знайшли, є правдою , такі (як речі, які я вам показав) - лише рекомендації.