web-dev-qa-db-fra.com

Ne se charge que sur la page du modèle de contact

Dans le pied de page, je charge l’API Google Maps. Mais uniquement sur la page de contact, j'ai utilisé l'API Google Maps. Maintenant, je veux faire du code. L'API Google Maps n'est chargée que dans les pages du modèle de contact. Comment puis-je faire ça.

Ceci est la balise de script dans le pied de page.

 <script type="text/javascript" src="//maps.google.com/maps/api/js?v=3&amp;sensor=false"></script>

Cette balise de script. Ne doit être chargé que dans la page de contact du modèle.

Merci d'avoir aidé

1
Mike Vierwind

Tout d’abord un conseil (puisque la solution est basée sur celle-ci) - mettez toujours vos scripts en file d’attente, ne les ajoutez pas simplement dans le pied de page. Lisez ceci , par exemple. Maintenant la solution pour charger des scripts sur un modèle spécifique , puisque c'est ce que vous avez demandé:

function enqueue_themescrits()
{
    if ( is_page_template('contact.php') ) { //the file your contact page uses
         wp_register_script( 'google_maps', 'http://maps.google.com/maps/api/js?v=3&amp;sensor=false' );
         wp_enqueue_script( 'google_maps' );
    }
    //Your other enqueued scripts

}
add_action( 'wp_enqueue_scripts', 'enqueue_themescrits' );

EDIT: ajoutez ceci à votre functions.php

3
Daniel Sachs

Vous avez "les balises conditionnelles" dans WordPress. Celles-ci vous permettent de déterminer si certaines conditions sont remplies ou non (il s’agit en réalité de parties de l’objet $wp_query, simplement encapsulées dans une fonction API publique).

En détail: Il y a is_page() , qui vous indique si vous êtes sur la page souhaitée non.

Il suffit donc de l’envelopper dans une fonction, l’accrocher au crochet droit et abandonner si vous n'êtes pas sur la page souhaitée.

Ce qui suit va dans votre fichier functions.php (ou un petit plugin personnalisé).

/** Plugin Name: Register Google Maps Script */
function wpse65356_enqueue_gmaps()
{
    if ( ! is_page( 'contact' ) )
        return;

    wp_enqueue_script(
         'google-maps'
        ,'maps.google.com/maps/api/js?v=3&amp;sensor=false'
        ,array()
        ,0
        ,true
    );
}
add_action( 'wp_enqueue_scripts', 'wpse65356_enqueue_gmaps' );
2
kaiser

Javascript (et css) doit être ajouté avec wp_enqueue_script .
Enregistrez le script mais ne le mettez pas encore en file d'attente dans functions.php.

Appelez la file d'attente sur la page du modèle de contact avant wp_head(),
qui devrait être situé dans header.php donc avant get_header().

registering et queueing sont déroutants au début, voici un bon tutoriel

0
janw