2017-05-05 3 views
0

J'ai une classe PHP écrite pour une utilisation dans des thèmes ou des plugins WordPress qui charge certains JS et CSS en utilisant enqueue_script et enqueue_style lorsque la classe est initialisée.Obtenir l'URL du fichier en cours avec PHP

Je dois dynamiquement obtenir l'URL (pas le chemin absolu) dans le répertoire où la classe est chargée afin que je puisse transmettre cette URL à enqueue_script et enqueue_style pour le chargement des ressources.

Annuaire Structure wp-content ├── themes │ ├── theme_name │ │ ├── my_class │ │ │ ├── my_class.php │ │ │ ├── js (need URL) │ │ │ │ ├── file.js* │ │ │ ├── css │ │ │ │ ├── file.css*
Y at-il une fonction PHP qui fonctionne comme [dirname][1] mais renvoie une URL de fichier pas un chemin?

EDIT
Le répertoire my_class doit pouvoir être tombé partout, dans un thème ou plugin, donc je ne peux pas compter sur les fonctions de base WordPress pour obtenir l'URL à la classe dir.

+0

Un exemple de ce que vous voulez obtenir? Qu'avez-vous essayé? Vous voudrez probablement vérifier [get_site_url()] (https://developer.wordpress.org/reference/functions/get_site_url/) ... quelque chose comme '$ file_relative_path =" ... "; $ url = get_site_url (null, $ file_relative_path, 'https'); '? –

+0

Cela peut être utilisé dans un thème ou un plugin, donc get_site_url ne fonctionne pas. Le répertoire de classe devrait pouvoir être déposé n'importe où, donc je ne peux pas compter sur les fonctions de base de WordPress. –

Répondre

2

__DIR__ vous donnera le chemin d'accès au dossier du script en cours, puis vous pouvez simplement supprimer votre document racine (le chemin d'accès au dossier de vos fichiers sont hébergés), puis il vous reste le chemin d'URL:

$file_path = __DIR__; 
$url_path = str_replace($_SERVER['DOCUMENT_ROOT'], '', $file_path); 
+0

Merci, cela a fonctionné. –