In che modo Wordpress determina "il file del plugin principale"?
È il file nel tuo plugin che contiene il commento dell'intestazione del 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
*/
D1: È legale / supportato avere un plugin strutturato in questo modo:
Sì. Ogni struttura di directory (per quanto supportata dai server) è legale.
Q2: In tal caso, in che modo wordpress determina quale file php è il file del plug-in principale?
Vedi sopra ↑
D3: L'uso di una sottodirectory (come inc / nell'esempio sopra) è un requisito quando il codice PHP si estende su più moduli?
Requisiti? No. Più bello da leggere: sì. Più facile da mantenere: anche sì.
Q4: È vero che dovrebbe esserci un massimo di UN file php nella directory principale del plugin?
No. Semplicemente no.
Riassunto
Il modo in cui organizzi completamente i tuoi file e directory dipende da te, dalle tue preferenze personali e nient'altro. Se si desidera semplificare la manutenzione e consentire ad altri sviluppatori di esaminare il codice, è necessario utilizzare una sorta di organizzazione di file / directory.
Esempi
Personalmente aggiungo .class.php
come estensione, quando ho preso una lezione. Noto anche i miei file esattamente come la classe. Il motivo è semplice: il mio "file plugin principale" - che è la mia bootstrap
classe, normalmente si preoccupa di caricare tutte le cose necessarie.
// 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 );
}
}
Ciò significa che le mie classi e i miei file sono denominati come segue:
settings.class.php
E settings_extended.class.php
my_class_prefix_settings
E my_class_prefix_settings_extended
Faccio anche alcune organizzazioni di directory di base, come archiviare tutto js/css/img
file in directory chiamate in questo modo.
Alcune persone usano (per plugin più grandi) le cartelle che hanno un nome inc/includes/assets/extensions/lib/etc.
. Consiglio di utilizzare le sottocartelle solo per plugin di grandi dimensioni. Se hai altre cose come widget, ecc., Puoi usare sottocartelle specifiche per loro.
Ultima parola: No, nulla di ciò che hai trovato è vero , quelli (come le cose che ti ho mostrato) sono solo consigli.