web-dev-qa-db-ja.com

特定の1ページにのみ.jsファイルを追加して動的に先頭に追加する方法

連絡先ページにのみGoogleマップのスクリプトを追加する必要がありますが、すべてのページに表示することは望ましくありません。私はカスタムヘッダーも作成するつもりはないので、連絡先ページにのみjsファイルを追加する方法はあると思いますか?現在、私はテーマにJavaScriptを追加するためにこのコードを使用しています

//Load Scripts
function load_scripts(){
    wp_deregister_script('jquery'); // De-register Existing jquery
    wp_enqueue_script('jquery', 'http://code.jquery.com/jquery.js', '', '', true);
    wp_enqueue_script('bootstrap-jquery', get_template_directory_uri().'/assets/js/bootstrap.js', '', '', true);
}

私が言ったように私は googlemap.js と呼ばれる別のファイルを持っているあなたは私がこのコードから唯一の連絡先ページにそれを追加することができるかどうか私に知らせてもらえますか?もう1つのポイントは、Wordpressがこのコードを本体の末尾(タグの前)に追加していることです。正直に言うと どうしたのかわからない !しかし、私の特定のケースでは、コードを追加する必要があります。どうしたらいいか教えてください。

ありがとう

3
Behseini

特定のページにスクリプトをロードするには、条件付き is_page() を使用します。

これはあなたの関数の修正版です:

//Load Scripts
function load_scripts(){
    wp_deregister_script('jquery'); // De-register Existing jquery
    wp_register_script('jquery', 'http://code.jquery.com/jquery.js', '', '', true);
    wp_enqueue_script( 'jquery' );

    wp_register_script('bootstrap-jquery',get_template_directory_uri().'/assets/js/bootstrap.js', array( 'jquery' ), '', true);
    wp_enqueue_script( 'bootstrap-jquery' );

    // register the script
    wp_register_script( 'my-script', 'URL to Script' ); // by default script will load to head

    // conditionally load page
    if (is_page( 'Contact' )) {
        wp_enqueue_script('my-script');
    }
}
3
Sisir

ここにあなたのためのいくつかのトリックがあります

注意:

wp_register_script(); // is only register js file, it is not running
wp_deregiser_script(); // is completely remove js file, it is not Nice method is to use in page condition check

//Run Js
wp_enqueue_script(); // is use only your register js file,
wp_dequeue_script(); // this function make not to run js file, it is Nice method to use in page codition check

Functions.phpファイル内

function js_library() {

    //1. Method
    if ( is_front_page() ) {
        //wp_dequeue_script();
    }

    //2. Method
    if ( is_page(120)) { //120 is page id, you can get page id using using $post->ID or get_the_ID
        //wp_dequeue_script();
    }

    if ( is_page($post->ID) == 120 ) { //120 is your page id
        //wp_dequeue_script();
    }

    if ( is_page('about-us') ) { //about-us is using page slug, you can get page slug http://yourdomain.com/about-us
        //wp_dequeue_script();
    }

    $remove_js_pages = array('about-us', 'contact-us', 'service'); // for multi page slugs
    if ( is_page($remove_js_pages) ) { //remember you can get page slug from your page url ;-)
        //wp_dequeue_script();
    }

    //Using page name
    $pagename = get_query_var('pagename');
    if ( !$pagename && $id > 0 ) {
        // If a static page is set as the front page, $pagename will not be set. Retrieve it from the queried object
        $post = $wp_query->get_queried_object();
        $pagename = $post->post_name;
    }

    if ( is_page() == $pagename ) {
        //wp_dequeue_script();
    }
}
3
por