Ottenere la directory dei plugin da un tema

9 ott 2013, 12:17:59
Visualizzazioni: 23K
Voti: 9

Qualcuno conosce un modo pulito per ottenere il percorso della directory dei plugin dall'interno del file functions.php di un tema?

Ho usato plugin_dir_path(FILE), ma poiché viene chiamato nel functions.php del tema, restituisce il percorso di quel file. Non la directory dei plugin. Potrei manipolare la stringa e aggiungere il percorso dei plugin, ma mi sembra quasi brutto quanto codificare l'intero percorso.

Sono riuscito a farlo funzionare usando:

require_once( ABSPATH .'/wp-content/plugins/ehu-events/event-widget.php' );

Ma so che questo è un metodo troppo antiquato e sbagliato e probabilmente verrei bandito dalla community WordPress per averlo usato!

Esiste una funzione WordPress standard che posso utilizzare per questo?

0
Tutte le risposte alla domanda 2
2
19

Forse quello che stai cercando è :

WP_PLUGIN_DIR  // percorso completo, senza slash finale
WP_PLUGIN_URL  // URL completo, senza slash finale

Vedi la documentazione

9 ott 2013 12:25:37
Commenti

Tieni presente che ci sono filtri che potrebbero spostare la posizione altrove. Questa potrebbe essere la soluzione migliore, ma non è sicuramente un'ipotesi sicura.

kaiser kaiser
9 ott 2013 14:15:15

La documentazione collegata dice quanto segue riguardo alle costanti: «Queste non dovrebbero essere utilizzate direttamente da plugin o temi, ma sono elencate qui per completezza.» Quindi probabilmente non dovrebbe essere suggerita come soluzione, quando il consiglio è di non utilizzarle nel tuo tema.

Gchtr Gchtr
30 mar 2018 12:59:56
3
11

Credo che questo approccio possa essere più affidabile rispetto a dipendere dalle costanti.

$url = plugins_url();
$path = parse_url($url);
var_dump($path['path']);

Il motivo per cui sospetto che possa essere più affidabile è che la funzione plugins_url prende in considerazione sia la costante WPMU_PLUGIN_URL che la costante WP_PLUGIN_URL e rispetterà anche il filtro plugins_url.

9 ott 2013 18:00:00
Commenti

Questo è il metodo meno approssimativo e dovrebbe essere la risposta migliore.

CGeorges CGeorges
16 mar 2016 01:06:03

che dire dei plugin contenuti all'interno dei temi?

brett brett
3 gen 2019 18:18:38

... e poi usa untrailingslashit( get_home_path() ) . $path['path'] per ottenere il percorso completo sul server.

squarecandy squarecandy
16 ago 2021 05:06:07