it-swarm-eu.dev

Nejlepší praxe pro zahrnutí pluginů jako součást tématu?

Pracuji na tématu, které obsahuje některé funkce, které jsem vyvinul jako samostatné pluginy (protože doufám, že je uvolním nezávisle).

Chtěl bych zahrnout tyto pluginy jako součást jádra tématu a všiml jsem si, že někteří vývojáři zahrnují pluginy jako soubory nebo podadresáře spolu s jejich tématem, ale postupem času to může vést k zachování dvou verzí stejného pluginu - jednoho pro úložiště pluginů, jeden pro téma - ale rád bych se tomu vyhnul, pokud je to možné.

Jaký je nejlepší postup pro zahrnutí zásuvných modulů do tématu?

5
Tom

Pokud je plánujete uvolnit nezávisle, pak je uvolněte a pokuste se je oba umístit do úložiště WP. To vám umožní aktualizovat systémy na dálku a udržet lidi, kteří používají nejaktuálnější systém.

Potom ve svém motivu is_plugin_active() filtrujte své příkazy. Pokud máte funkci motivu, která vyžaduje plugin, použijte is_plugin_active() pro dynamické přepínání mezi použitím funkce nebo progging uživatele k instalaci pluginu.

Důležité je mít na paměti, že vaše téma by mělo fungovat, pokud nejsou nainstalovány pluginy Nemusí mít stejnou sadu funkcí, ale také by se neměly rozbít, pokud se rozhodnou odstranit nebo deaktivovat jeden z ostatních pluginů.

Alternativně, pokud víte, že určitý plugin se po dlouhou dobu nezmění (používám jen několik pluginů, které pouze přidávám/odstraňuji konkrétní WP filtry) soubor PHP můžete vložit do adresáře /library s motivem a include() souborem v souboru functions.php. Funkce je standardně zapnuta - kompromis je, že nyní udržujete dvě verze pluginu (jak jste uvedli ve své původní otázce).

5
EAMann

V zásadě máte tři možné případy:

  • nainstalované téma a plugin;
  • nainstalován je pouze motiv;
  • je nainstalován pouze plugin.

Vezměte si účet, který bude pravděpodobně aktualizován:

  • zásuvný modul hostovaný v úložišti - pravděpodobně;
  • téma s repozitářem - pravděpodobně;
  • není téma nebo plugin hostovaný úložištěm - nepravděpodobné;
  • podřízené téma - vysoce nepravděpodobné (nemůže být hostováno v úložišti, ruční sloučení změn, protože to má být upraveno koncovým uživatelem).

Takže celkově je dobré udržet kód stejný (podobný, ne-li identický) a nahrát jej do motivu podmíněně, když plugin není k dispozici. Vzhledem k tomu, jak jsou nyní pluginy jak jednodušší a běžnější aktualizovat.

Je zřejmé, že téma musí být schopno použít buď samostatný nebo samostatný plugin a plugin by neměl záviset na kódu z tématu vůbec.

Nejlepší (ale složitou praxí) je budovat vaše rozšíření jako nezávislé na kontextu (aka framework) a používat vlastní zavaděč ke kontrole verzí a nejnovějších dostupných verzí. Praktický příklad rámcového přístupu viz scbFramework , který je distribuován jako samostatný plugin a používá se ve více dalších zásuvných modulech.

2
Rarst