Creazione di un plug-in con dipendenze


21

Sto cercando di estendere la funzionalità di un altro plugin. Devo ottenere i dati da esso in un array per usarli in modo diverso rispetto al plug-in originale. (In questo caso, plug-in Categorie ed elenchi WPMUDev). C'è qualcosa nel Codice? Come posso creare un plug-in che può utilizzare altre funzioni di plug-in? Posso estenderli e costruire le funzioni dei nodi principali? Non sono sicuro che questi plugin stiano usando le classi o solo funzioni semplici.

Sto solo cercando di ottenere i dati dal plug-in in un widget della barra laterale (in un elemento opzione modulo), ma alla fine lo userò anche per l'area del contenuto utilizzando codici brevi personalizzati. Per ora ho solo bisogno di un posto per iniziare.


4
FWIW c'è un ticket per questo argomento core.trac.wordpress.org/ticket/22316
Norcross

Risposte:


22

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

  1. Un plugin può impostare la propria azione e hook di filtro (usando le funzioni do_actione apply_filter) proprio come fa il core di WordPress. Se il plug-in a cui ti rivolgi fa questo, puoi usare questi hook per cambiare funzionalità.

  2. Se un plug-in utilizza una struttura orientata agli oggetti, è possibile estendere le classi e basarsi sul plug-in originale.

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

  4. Puoi chiamare qualsiasi funzione dal plug-in originale che ti piace, dopo aver verificato che il plug-in sia attivo e caricato (vedi sotto). Basta essere consapevoli di eventuali effetti che la funzione potrebbe avere oltre al valore restituito.

Dovrai verificare se quel plugin originale è attivato o meno. È possibile utilizzare la is_plugin_activefunzione; tuttavia, questo funziona solo sulle pagine di amministrazione. In alternativa, è possibile utilizzare function_existso class_existsper verificare se è disponibile o meno una particolare funzione o classe dal plug-in originale, che indica che è in esecuzione.

Ricorda che ogni volta che il plug-in originale viene aggiornato, devi testare il plug-in con la nuova versione per cercare qualcosa di nuovo che possa entrare in conflitto con il plug-in.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.