L'url du chemin WordPress dans le fichier de script js
j'ai ajouté custom script:
wp_enqueue_script('functions', get_bloginfo('template_url') . '/js/functions.js', 'search', null, false);
cela fonctionne bien, sauf dans le functions.js
j'ai:
Reset.style.background = "url('../images/searchfield_clear.png') no-repeat top left";
cela fonctionnait avant, jusqu'à ce que je change en plutôt permalien et .htaccess
la hiérarchie des dossiers est comme:
themename/js themename/images
(le dossier images et js est dans le dossier nom)
j'ai essayé ../image. - /image - / images
normalement, il devrait retourner au niveau 1 où le fichier js est hébergé....
Je ne veux pas utiliser le chemin complet.
Existe-t-il une autre façon que WordPress peut reconnaître dans le fichier javascript pour avoir le chemin correct?
actuellement je suis juste confus ce que je fais mal.
5 réponses
vous pouvez éviter le codage dur du chemin complet en mettant une variable JS dans l'en-tête de votre modèle, avant wp_head()
est appelé, contenant L'URL du modèle. Comme:
<script type="text/javascript">
var templateUrl = '<?= get_bloginfo("template_url"); ?>';
</script>
Et utiliser cette variable pour définir l'arrière-plan (je me rends compte que vous savez comment faire, je n'inclure ces détails, au cas où ils aide les autres):
Reset.style.background = " url('"+templateUrl+"/images/searchfield_clear.png') ";
selon la documentation Wordpress, vous devez utiliser wp_localize_script()
dans vos fonctions.fichier php. Cela créera un objet Javascript dans l'en-tête, qui sera disponible pour vos scripts à l'exécution.
Voir Codex
Exemple:
<?php wp_localize_script('mylib', 'WPURLS', array( 'siteurl' => get_option('siteurl') )); ?>
pour accéder à cette variable dans Javascript, il vous suffit de faire:
<script type="text/javascript">
var url = WPURLS.siteurl;
</script>
wp_register_script('custom-js',WP_PLUGIN_URL.'/PLUGIN_NAME/js/custom.js',array(),NULL,true);
wp_enqueue_script('custom-js');
$wnm_custom = array( 'template_url' => get_bloginfo('template_url') );
wp_localize_script( 'custom-js', 'wnm_custom', $wnm_custom );
et dans la coutume.js
alert(wnm_custom.template_url);
si le fichier javascript est chargé à partir du tableau de bord admin, cette fonction javascript vous donnera la racine de votre installation WordPress. Je l'utilise beaucoup quand je construis des plugins qui ont besoin de faire des requêtes ajax à partir du tableau de bord administrateur.
function getHomeUrl() {
var href = window.location.href;
var index = href.indexOf('/wp-admin');
var homeUrl = href.substring(0, index);
return homeUrl;
}
pour les utilisateurs travaillant avec le cadre Genesis.
ajouter ce qui suit au thème de votre enfant functions.php
add_action( 'genesis_before', 'script_urls' );
function script_urls() {
?>
<script type="text/javascript">
var stylesheetDir = '<?= get_bloginfo("stylesheet_directory"); ?>';
</script>
<?php
}
et utilisez cette variable pour définir l'url relative dans votre script. Par exemple:
Reset.style.background = " url('"+stylesheetDir+"/images/searchfield_clear.png') ";