Müssen Plugin-Dateien einer bestimmten Konvention folgen, um von WordPress „aufgenommen“ zu werden?

8

Ich habe ein Plugin unter Verwendung der normalen Konvention entwickelt, die Haupt-Plugin-Datei nach dem Plugin-Ordner zu benennen (dh prefix-somepluginfür den Ordner und prefix-someplugin.phpfür die Datei). Ich habe jedoch einige Plugins gesehen, die die folgende Struktur verwenden:

prefix-someplugin
 - plugin-loader.php // This file just loads src/prefix-someplugin.php
 - /src
    - prefix-someplugin.php

Wenn sie eine solche Struktur verwenden, bedeutet dies natürlich, dass sie funktioniert. Das Problem ist, dass ich nicht sicher bin, wie es funktioniert, daher meine Frage. Woher weiß WP, welche Datei als Haupt-Plugin-Datei geladen werden soll? Ich hätte angenommen, dass es nach einer Datei gesucht hat, die nach einem Ordner benannt ist und nur .phpals Erweiterung hinzugefügt wurde , aber es scheint, dass ich falsch lag.

Sucht WPjust wp-content/pluginsnach Ordnern und lädt alle darin gefundenen Dateien oder folgt es einer anderen Logik?

Vielen Dank im Voraus für die Antworten.

Diego
quelle

Antworten:

9

WordPress erkennt eine Datei als Plugin, wenn ein Plugin-Header vorhanden ist. Sie können also mehrere Plugins in einem Verzeichnis speichern, und alle werden als unterschiedliche Plugins erkannt.

Jede Datei mit mindestens /* Plugin Name: something */ist ein Plugin.

Der Grund ist, dass WordPress alle PHP-Dateien im Hauptverzeichnis eines Plugins scannt.

Sie können einen beliebigen Namen für die Plugin-Datei verwenden. Vermeiden Sie Nicht-Plugin-Dateien im Hauptverzeichnis. Sie essen nur Laufzeit. Legen Sie alle anderen PHP-Dateien in Unterverzeichnissen ab.

Fuxia
quelle
Aha! Jetzt habe ich es verstanden. Ich habe die Plugin-Loader-Datei überprüft und sie enthält den Plugin-Header, der sich normalerweise in der Haupt-Plugin-Datei befindet. Es scheint, dass der Autor die Datei einfach in zwei Teile geteilt hat (eine mit nur Header + Loader und eine mit Plugin-Code), so dass alle Plugin-Inhalte vorhanden sind srcund die Tests ausgeführt werden test. Danke für die Antwort. :)
Diego