Les fichiers de plug-in doivent-ils suivre une convention spécifique pour être «récupérés» par WordPress?

8

J'ai développé un plugin en utilisant la convention normale de nommer le fichier plugin principal après le dossier plugin (c'est- prefix-somepluginà- dire pour le dossier et prefix-someplugin.phppour le fichier). Cependant, j'ai vu certains plugins qui utilisent la structure suivante:

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

Évidemment, s'ils ont utilisé une telle structure, cela signifie que cela fonctionne. Le problème est que je ne sais pas comment cela fonctionne, d'où ma question. Comment WP sait-il quel fichier charger comme fichier plugin principal? J'aurais supposé qu'il cherchait un fichier nommé d'après un dossier, en ajoutant simplement .phpune extension, mais il semble que j'avais tort.

WPjust recherche-t-il les wp-content/pluginsdossiers et charge-t-il tous les fichiers qu'il y trouve, ou suit-il une logique différente?

Merci d'avance pour les réponses.

Diego
la source

Réponses:

9

WordPress détecte un fichier comme plugin lorsqu'il y a un en-tête de plugin. Vous pouvez donc stocker plusieurs plugins dans un répertoire, et ils seront tous reconnus comme des plugins différents.

Chaque fichier avec au moins /* Plugin Name: something */est un plugin.

La raison en est que WordPress analyse tous les fichiers PHP dans le répertoire principal d'un plugin.

Vous pouvez utiliser n'importe quel nom pour le fichier de plug-in. Évitez les fichiers non plugin dans le répertoire principal. Ils mangent juste à l'exécution. Mettez tous les autres fichiers PHP dans des sous-répertoires.

fuxia
la source
A-ha! Maintenant je comprends. J'ai vérifié le fichier du chargeur de plugins et il contient l'en-tête du plugin, qui se trouve normalement dans le fichier de plugin principal. Il semble que l'auteur ait simplement divisé le fichier en deux (un avec juste en-tête + chargeur et un avec le code du plugin), de sorte que tout le contenu du plugin soit dedans srcet les tests dedans test. Merci d'avoir répondu. :)
Diego