Crearea unui plugin cu dependințe

4 sept. 2013, 04:47:15
Vizualizări: 19.2K
Voturi: 22

Încerc să extind funcționalitatea unui alt plugin. Am nevoie să obțin date din acesta într-un array pentru a le folosi într-un mod diferit față de plugin-ul original (în acest caz, WPMUDev Categories și Listings plugins). Există ceva în Codex despre asta? Cum pot crea un plugin care să poată folosi funcțiile altui plugin? Pot să le extind și să construiesc funcțiile nodurilor părinte? Nu sunt sigur dacă aceste plugin-uri folosesc clase sau doar funcții simple.

Momentan încerc doar să obțin date din plugin într-un widget de sidebar (într-un element de tip form option), dar în cele din urmă voi folosi asta și pentru zona de conținut prin folosirea shortcode-urilor personalizate. Pentru moment am nevoie doar de un punct de plecare.

1
Comentarii

Pentru ceea ce valorează, există un tichet de urmărire despre această temă http://core.trac.wordpress.org/ticket/22316

Norcross Norcross
9 sept. 2013 00:19:46
Toate răspunsurile la întrebare 1
0
22

Da, este posibil să creezi un plugin care extinde alt plugin. Iată câteva idei despre cum ai putea face asta:

  1. Un plugin poate configura propriile hook-uri de acțiune și filtrare (folosind funcțiile do_action și apply_filter) exact ca face nucleul WordPress. Dacă pluginul pe care îl vizezi face acest lucru, poți folosi aceste hook-uri pentru a modifica funcționalitatea.

  2. Dacă un plugin folosește o structură orientată pe obiecte, poți extinde clasele și poți construi pe baza pluginului original.

  3. Poți citi datele stocate în baza de date de către pluginul original și să le folosești în codul tău de plugin.

  4. Poți apela orice funcție din pluginul original după ce ai verificat că pluginul este activ și încărcat (vezi mai jos). Doar fii atent la orice efecte pe care funcția le-ar putea avea în afară de valoarea returnată.

Va trebui să verifici dacă acel plugin original este activat. Ai putea folosi funcția is_plugin_active; totuși, aceasta funcționează doar pe paginile de administrare. Alternativ, ai putea folosi function_exists sau class_exists pentru a verifica dacă o anumită funcție sau clasă din pluginul original este disponibilă, ceea ce ți-ar spune că rulează.

Ține minte că de fiecare dată când pluginul original este actualizat, trebuie să testezi pluginul tău cu noua versiune pentru a căuta orice lucru nou care ar putea intra în conflict cu pluginul tău.

4 sept. 2013 05:52:45