La documentazione di WordPress per determinare le directory dei plug-in e dei contenuti afferma che:
WordPress utilizza le seguenti costanti per determinare il percorso delle directory dei contenuti e dei plug-in. Questi non dovrebbero essere usati direttamente da plugin o temi , ma sono elencati qui per completezza.
Continua a elencare WP_CONTENT_DIR
e WP_PLUGIN_DIR
tra le costanti che gli sviluppatori di temi e plugin non dovrebbero usare, presumibilmente per questo:
WordPress consente agli utenti di posizionare la loro directory di contenuto wp dove vogliono, quindi non si deve mai presumere che i plugin saranno in contenuto / plugin wp, o che i caricamenti saranno in contenuto / caricamenti wp, o che i temi saranno in wp- content / themes.
Mark Jaquith commenta anche qui che tali costanti non dovrebbero essere usate:
Non utilizzare WP_PLUGIN_URL o WP_PLUGIN_DIR - i plug-in potrebbero non essere nella directory dei plug-in.
Quindi, qual è il modo accettato di fare riferimento al percorso completo delle cartelle plugin, contenuto wp e temi senza usare queste costanti?
Come semplice esempio, per ottenere il percorso completo di tutti i plugin installati, posso fare questo:
<?php
$plugins = get_plugins();
foreach ($plugins as $file => $details) {
echo WP_PLUGIN_DIR . '/' . $file . '<br>';
}
Che produce un elenco come questo:
/var/www/wp-content/plugins/akismet/akismet.php
/var/www/wp-content/plugins/debug-bar/debug-bar.php
/var/www/wp-content/plugins/hello.php
(Potrei voler fare questo se stavo scrivendo un plugin per consentire all'utente di archiviare selettivamente i plugin come parte di un backup del sito, ad esempio.)
Se l'utilizzo WP_PLUGIN_DIR
è errato, qual è l'alternativa suggerita? Non esiste un equivalente wp_upload_dir()
per i plug-in, i temi e la cartella wp-content che trovo, il che rende problematico il riferimento ai temi potenzialmente erranti e alle directory principali dei plug-in.
WP_PLUGIN_DIR
, quindi la mia domanda qui.