Wie ermittelt Wordpress "die Haupt-Plugin-Datei"?
Es ist die Datei in Ihrem Plugin, die den Kommentar zum Plugin-Header enthält
/**
* 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
*/
Frage 1: Ist es legal / unterstützt, ein Plugin zu haben, das so aufgebaut ist:
Ja. Jede Verzeichnisstruktur (soweit von Servern unterstützt) ist legal.
F2: Wenn ja, wie bestimmt WordPress, welche PHP-Datei die Haupt-Plugin-Datei ist?
Siehe oben ↑
F3: Ist die Verwendung eines Unterverzeichnisses (wie inc / im obigen Beispiel) eine Anforderung, wenn der PHP-Code mehrere Module umfasst?
Anforderung? Schöner zu lesen: ja. Einfacher zu warten: Auch ja.
F4: Stimmt es, dass sich maximal EINE PHP-Datei im Haupt-Plugin-Verzeichnis befinden sollte?
Einfach nein.
Zusammenfassend
Die Art und Weise, wie Sie Ihre Dateien und Verzeichnisse vollständig organisieren, liegt bei Ihnen, Ihren persönlichen Vorlieben und sonst nichts. Wenn Sie die Wartung vereinfachen und anderen Entwicklern das Durchlaufen Ihres Codes erleichtern möchten, sollten Sie eine Art Datei- / Verzeichnisorganisation verwenden.
Beispiele
Ich persönlich füge .class.php
als Erweiterung hinzu, wenn ich eine Klasse darin habe. Ich benenne meine Dateien auch genau wie die Klasse. Der Grund ist einfach: Meine "Haupt-Plugin-Datei" - das ist meine bootstrap
Klasse - kümmert sich normalerweise darum, alle benötigten Dinge zu laden.
// 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 );
}
}
Dies bedeutet, dass meine Klassen und Dateien wie folgt benannt sind:
settings.class.php
UND settings_extended.class.php
my_class_prefix_settings
UND my_class_prefix_settings_extended
Ich mache auch einige grundlegende Verzeichnisorganisationen, wie das Speichern aller js/css/img
Dateien in Verzeichnissen mit diesem Namen.
Einige Leute verwenden (für größere Plugins) Ordner, die benannt sind inc/includes/assets/extensions/lib/etc.
. Ich würde empfehlen, Unterordner nur für große Plugins zu verwenden. Wenn Sie zusätzliche Dinge wie Widgets usw. haben, können Sie bestimmte Unterordner für diese verwenden.
Letztes Wort: Nein, nichts, was Sie gefunden haben, ist wahr , das (wie das, was ich Ihnen gezeigt habe) sind nur Empfehlungen.