Как 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 является основным файлом плагина?
Смотри выше ↑
В3: Требуется ли использование подкаталога (например, 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.
. Я бы рекомендовал использовать подпапки только для больших плагинов. Если у вас есть дополнительные вещи, такие как виджеты и т. Д., Вы можете использовать для них специальные подпапки.
Последнее слово: нет, ничего из того, что вы нашли, не является правдой , эти (как и материал, который я вам показал) являются только рекомендациями.