Creare un plugin con dipendenze

4 set 2013, 04:47:15
Visualizzazioni: 19.2K
Voti: 22

Sto cercando di estendere la funzionalità di un altro plugin. Ho bisogno di ottenere i dati da esso in un array per utilizzarli in modo diverso rispetto al plugin originale (in questo caso, i plugin WPMUDev Categories e Listings). C'è qualcosa nel Codex? Come posso creare un plugin che possa utilizzare le funzioni di altri plugin? Posso estenderle e costruire le funzioni dei nodi parent? Non sono sicuro se questi plugin utilizzano classi o semplicemente funzioni dirette.

Sto solo cercando di ottenere i dati dal plugin in un widget della sidebar (in un elemento form option), ma alla fine li utilizzerò anche per l'area dei contenuti tramite shortcode personalizzati. Per ora ho solo bisogno di un punto di partenza.

1
Commenti

Per quello che vale, c'è un ticket di tracciamento su questo stesso argomento http://core.trac.wordpress.org/ticket/22316

Norcross Norcross
9 set 2013 00:19:46
Tutte le risposte alla domanda 1
0
22

Sì, è possibile creare un plugin che estende un altro plugin. Ecco alcune idee su come procedere:

  1. Un plugin può configurare i propri hook di azione e filtro (utilizzando le funzioni do_action e apply_filter) proprio come fa il core di WordPress. Se il plugin che vuoi estendere lo fa, puoi utilizzare questi hook per modificare le funzionalità.

  2. Se un plugin utilizza una struttura orientata agli oggetti, puoi estendere le classi e costruire sul plugin originale.

  3. Puoi leggere i dati memorizzati nel database dal plugin originale e utilizzarli nel codice del tuo plugin.

  4. Puoi chiamare qualsiasi funzione del plugin originale che desideri, dopo aver verificato che il plugin sia attivo e caricato (vedi sotto). Fai solo attenzione agli eventuali effetti collaterali che la funzione potrebbe avere oltre al valore restituito.

Dovrai verificare se il plugin originale è attivo. Potresti utilizzare la funzione is_plugin_active; tuttavia, questa funziona solo nelle pagine di amministrazione. In alternativa, potresti usare function_exists o class_exists per verificare se una particolare funzione o classe del plugin originale è disponibile, il che ti direbbe che è in esecuzione.

Ricorda che ogni volta che il plugin originale viene aggiornato, devi testare il tuo plugin con la nuova versione per verificare eventuali conflitti.

4 set 2013 05:52:45