J'ai un site Web qui utilise WordPress pour son blog (le site lui-même n'est pas WordPress). La structure est donc:
www.website.com (not WordPress)
www.website.com/blog (WordPress)
J'ai un fichier JavaScript qui est utilisé à la fois pour le site Web et le blog. Mais lorsque je fais un lien vers le fichier dans le fichier functions.php, WordPress essaie de le trouver dans le thème:
// Register the script
wp_register_script('circle-bounce', get_template_directory_uri() . '/js/general.js', array( 'jquery', 'jquery-effects-core', 'jquery-effects-bounce'));
Cela recherche le fichier general.js dans le dossier du thème enfant wordpress. Dans le source, il est lié à:
http://www.website.com/blog/wp-content/themes/twentytwelve/js/general.js?ver=4.2.2
J'en ai réellement besoin pour obtenir le fichier dans le dossier js à la racine du site. Le fichier peut donc être trouvé sur:
website.com/js/general.js
La seule façon pour moi d’y parvenir est de changer l’enregistrement en:
// Register the script
wp_register_script('circle-bounce', 'http://www.website.com/js/general.js', array( 'jquery', 'jquery-effects-core', 'jquery-effects-bounce'));
J'aimerais éviter un lien absolu si je peux. Y-a t'il une autre possibilité?
Votre première tentative ne fonctionne pas car get_template_directory_uri
renvoie l'URL dans votre répertoire de thèmes.
Votre deuxième tentative fonctionnera, mais si vous ne souhaitez pas coder de manière stricte le domaine, vous pouvez essayer d’utiliser un chemin relatif racine ou d’extraire la partie domaine de l’URL de votre site.
Chemin relatif:
wp_register_script('circle-bounce', '/js/general.js', array( 'jquery', 'jquery-effects-core', 'jquery-effects-bounce'));
Domaine:
$parts = parse_url(site_url());
$domain_url = $parts['scheme'] . '://' . $parts['Host'];
wp_register_script('circle-bounce', $domain_url . '/js/general.js', array( 'jquery', 'jquery-effects-core', 'jquery-effects-bounce'));