Tworzenie wtyczki z zależnościami


21

Próbuję rozszerzyć funkcjonalność innej wtyczki. Muszę pobrać z niego dane do tablicy, aby użyć ich w inny sposób niż oryginalna wtyczka. (W tym przypadku wtyczki WPMUDev kategorii i list). Czy jest coś w Kodeksie? Jak mogę utworzyć wtyczkę, która może korzystać z innych funkcji wtyczek? Czy mogę je rozszerzyć i skonstruować funkcje węzłów nadrzędnych? Nie jestem pewien, czy te wtyczki używają klas, czy tylko prostych funkcji.

Próbuję tylko pobrać dane z wtyczki do widżetu paska bocznego (w elemencie opcji formularza), ale w końcu będę tego używał również w obszarze zawartości, używając niestandardowych skrótów. Na razie potrzebuję tylko miejsca, aby zacząć.


4
FWIW istnieje bilet na szlak na ten właśnie temat core.trac.wordpress.org/ticket/22316
Norcross

Odpowiedzi:


22

Tak, możliwe jest utworzenie wtyczki rozszerzającej inną wtyczkę. Oto kilka pomysłów, w jaki sposób możesz to zrobić:

  1. Wtyczka może skonfigurować własną akcję i filtrować haczyki (używając funkcji do_actioni apply_filter), tak jak robi to rdzeń WordPress. Jeśli wtyczka, do której celujesz, to robi, możesz użyć tych haków, aby zmienić funkcjonalność.

  2. Jeśli wtyczka wykorzystuje strukturę obiektową, możesz rozszerzyć klasy i zbudować na oryginalnej wtyczce.

  3. Możesz odczytać dane przechowywane w bazie danych przez oryginalną wtyczkę i użyć jej w kodzie wtyczki.

  4. Możesz wywołać dowolną funkcję z oryginalnej wtyczki, którą lubisz, po sprawdzeniu, czy wtyczka jest aktywna i załadowana (patrz poniżej). Należy tylko pamiętać o wszelkich efektach, które funkcja może mieć oprócz zwracanej wartości.

Musisz sprawdzić, czy oryginalna wtyczka jest aktywowana. Możesz użyć is_plugin_activefunkcji; Działa to jednak tylko na stronach administracyjnych. Alternatywnie możesz użyć function_existslub, class_existsaby sprawdzić, czy konkretna funkcja lub klasa z oryginalnej wtyczki jest dostępna, co powie, że jest uruchomiona.

Pamiętaj, że za każdym razem, gdy oryginalna wtyczka jest aktualizowana, musisz przetestować wtyczkę w nowej wersji, aby wyszukać coś nowego, co może kolidować z wtyczką.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.