web-dev-qa-db-ja.com

連絡先テンプレートページにのみロードする

フッターにGoogleマップのAPIをロードします。しかし、連絡先のページでは、私はグーグルマップAPIを使用しました。今私はコードを作りたいです。グーグルマップAPIは連絡先テンプレートページにのみロードされます。どのように私はそれをすることができます。

これはフッター内のスクリプトタグです。

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

そのスクリプトタグ。テンプレート連絡先ページにのみロードする必要があります。

助けてくれてありがとう

1
Mike Vierwind

最初にちょっとしたアドバイス(解決策がそれに基づいているので) - 常にあなたのスクリプトを「エンキュー」し、単にそれらをフッターに追加しないでください。 たとえばこれを読んでください 。これが特定のテンプレートにスクリプトをロードするための解決策です。

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' );

編集:これを関数に追加してください。php

3
Daniel Sachs

WordPressに "コンディショナルタグ" があります。これらは、何らかの条件が満たされているかどうかを判断することを可能にします(基本的にこれらはパブリックAPI関数でラップされた$wp_queryオブジェクトの一部です)。

詳しくは、 is_page() があります。これは、目的のページにいないかどうかを示しています。

それで単にそれを関数にラップして、正しいフックでフックして、あなたが望ましいページにいないならば中止してください。

以下はfunctions.phpファイル(または小さなカスタムプラグイン)に入ります。

/** 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(およびcss)は wp_enqueue_script で追加する必要があります。
スクリプトを登録 しますが、まだfunctions.phpにエンキューしないでください。

wp_head()の前に、連絡先テンプレートページのエンキューを呼び出します。
これは、get_header()の前のheader.phpに配置する必要があります。

registeringqueueingは、最初は混乱を招くので、良い チュートリアルです

0
janw