Come includere il file PHP di un plugin nel file functions di un altro plugin

22 ago 2012, 11:56:58
Visualizzazioni: 22.8K
Voti: 9

Ho bisogno di personalizzare l'output dello shortcode del plugin A utilizzando una funzione del plugin B. Quindi modifico la funzione shortcode del plugin A inserendo una condizione per controllare il valore della funzione del plugin B, ma devo includere il file php che supporta questa funzione. Ho provato tutti require_once, require e include ma ottengo i seguenti errori:

Quando uso require_once('../../pluginname/pluginfunctions.php');

Errore Warning: require_once(): open_basedir restriction in effect. File(../../magicmembers/core/libs/functions/mgm_misc_functions.php) is not within the allowed path(s)

Quando uso include(WP_PLUGIN_URL . '/pluginname/pluginfunctions.php');

Errore Warning: include(): URL file-access is disabled in the server configuration

Qual è il modo corretto?

0
Tutte le risposte alla domanda 3
2

Il primo messaggio di errore indica che ci sono restrizioni impostate dal server su dove è possibile includere i file. Potresti provare con:

require_once ABSPATH . '/wp-content/plugins/nomeplugin/pluginfunctions.php';

ma non sono sicuro che funzionerà.

Con il secondo include stai tentando di includere un URL che è disabilitato dal server per motivi di sicurezza.

Tuttavia, perché hai bisogno di includere la funzione del plugin B? Se il plugin B è presente significa che è probabilmente attivato, il che a sua volta significa che puoi utilizzare la funzione direttamente dal plugin A senza bisogno di includere specificamente il file.

22 ago 2012 12:10:03
Commenti

Ehi, grazie per la tua risposta! Potrebbe essere l'unico metodo che non ho testato e funziona! Non so davvero perché la funzione non funzionasse senza includere il file che la supporta. È possibile che il plugin B non sia ancora caricato quando il plugin A richiede il suo file? Comunque grazie per il tuo aiuto!

vadims vadims
22 ago 2012 13:29:06

Dovresti usare require_once WP_PLUGIN_DIR . DIRECTORY_SEPARATOR . 'plugin-name' ecc. poiché la directory wp-content può essere rinominata.

Keith Mifsud Keith Mifsud
24 lug 2020 15:29:01
0

La funzione corretta da utilizzare è: plugin_dir_path();

Esempio:

include_once plugin_dir_path( __FILE__ ).'plugin-functions.php';
8 giu 2016 23:39:28
1
-2

Se ti senti pigro potresti anche fare

require_once( ABSPATH . PLUGINDIR .'/pluginname/pluginfunctions.php' );

Questo aiuta se vuoi mantenere le tue linee di codice brevi ma non è molto diverso dalla risposta di pbd.

8 giu 2016 23:03:31
Commenti

Per favore … usa la funzione corretta: plugin_dir_path() invece di codificare direttamente costanti che non sono pensate per essere utilizzate da temi e plugin.

kaiser kaiser
8 giu 2016 23:36:41