Voglio accodare un file .js al tema di mio figlio


16

Ho provato ad accodare un file .js personalizzato nella directory dei temi di mio figlio.

Nella funzione.php del tema di mio figlio trovo il seguente codice

/* After this. you can override Accessible Zen's pluggable functions or add your own.
 * Remember, do your best to stay accessible! :)
 *
 */
 add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );
function theme_enqueue_styles() {
    wp_enqueue_script( 'custom-script.js', 'js/custom-script.js', array('jquery') );
    wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
    wp_enqueue_style( 'child-style', get_stylesheet_uri(), array( 'parent-style' ) );
}

dove solo questa parte è stata implementata da me e dovrebbe caricare il mio custom.script.js dalla cartella js /

wp_enqueue_script( 'custom-script.js', 'js/custom-script.js', array('jquery') );

Sfortunatamente non lo fa, qualcuno può aiutare?

* Aggiornamento 2

Il codice ora appare così e funziona, non ha funzionato quando ho appena aggiunto la funzione all'altra add_action. Grazie a tutti per l'aiuto! Mi chiedo ancora se non c'è modo di tagliare un po 'questo codice.

add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );
function theme_enqueue_styles() {
    wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
    wp_enqueue_style( 'child-style', get_stylesheet_uri(), array( 'parent-style' ) );
}

/*add my custom jquery script*/
add_action( 'wp_enqueue_scripts', 'menu_scripts' );
function menu_scripts() {
wp_enqueue_script( 'responsive-menu', get_bloginfo( 'stylesheet_directory' ) . '/js/responsive-menu.js', array( 'jquery' ), '1.0.0' );
wp_enqueue_script(
    'custom-script',
    get_stylesheet_directory_uri() . '/js/custom-script.js',
    array( 'jquery' )
);
        }

A cosa serve questa linea?

wp_enqueue_script( 'responsive-menu', get_bloginfo( 'stylesheet_directory' ) . '/js/responsive-menu.js', array( 'jquery' ), '1.0.0' );

È necessario?


wp_enqueue_script( 'custom-script.js', get_stylesheet_directory_uri() . 'js/custom-script.js', array('jquery') );
Pieter Goosen il

@Pieter Ho adattato la tua modifica ma non funziona ancora. Questo è ciò che ho nel mio file .js e funziona se lo metto direttamente in page.php ad esempio: <script> if (jQuery) {alert ("la libreria jQuery è caricata!"); } else {alert ("la libreria jQuery non è stata trovata!"); } </script>
MrKainig,

@Pieter Okay ho inserito il codice nella domanda
MrKainig,

Rimuovi i tag script dal tuo file js
Pieter Goosen

Risposte:


31

Ecco un esempio funzionante:

add_action( 'wp_enqueue_scripts', 'menu_scripts' );
function menu_scripts() {
wp_enqueue_script( 'responsive-menu', get_bloginfo( 'stylesheet_directory' ) . '/js/responsive-menu.js', array( 'jquery' ), '1.0.0' );
wp_enqueue_script(
    'custom-script',
    get_stylesheet_directory_uri() . '/js/custom_script.js',
    array( 'jquery' )
);
        }

O come questo che apparentemente carica più velocemente:

function my_scripts_method() {
    wp_enqueue_script(
        'custom-script',
        get_stylesheet_directory_uri() . '/js/custom_script.js',
        array( 'jquery' )
    );
}

add_action( 'wp_enqueue_scripts', 'my_scripts_method' );

Fonte http://codex.wordpress.org/Function_Reference/wp_enqueue_script

get_template_directory_uri() funzionerà solo con un tema principale.


1
Perché non usi get_stylesheet_directory_uri()?
Pieter Goosen il

Entrambi funzionano in base ai miei test.
Brad Dalton,

Ho provato il primo, non ha funzionato. Puoi forse pubblicare il blog di codice completo (compresi i miei ambienti esistenti e funzionanti)? Perché non so come implementare correttamente il tuo codice con quello già presente nelle mie funzioni.php
MrKainig,

2
Sì, lo fanno, ma get_stylesheet_directory_uri()è più veloce :-)
Pieter Goosen il

È solo un esempio funzionante. È necessario un lavoro per tuo conto per sapere come funziona con il tuo codice. Ora puoi rielaborare il codice in modo che carichi gli script nel tema.
Brad Dalton,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.