Supporto » Aspetto = Temi » inserimento javascript in child theme

  • babigalad

    (@babigalad)


    Buongiorno a tutti,
    chiedo scusa perché temo che questo argomento sia stato già sviscerato (chissà quanto) ma proprio non riesco a trovare una risposta al mio problema e sono 3 giorni che ci lavoro… scusate ma adesso chiedo aiuto.

    Uso un tema child del tema Sydney e vorrei includere uno snippet java fornito direttamente dalla aThemes (creatori del tema Sydney) che crea un secondo bottone “go to action” sulla home page.
    Non sono molto pratico ma avendo un tema child so che posso richiamare questo java nel file function e tutto dovrebbe funzionare, solo che non è così.
    Ho copiato lo snippet in un file che ho salvato (.js ovviamente) in una cartella del mio tema child.
    Poi ho inserito, nel file function.php del tema child il codice legato alla funzione wp_enqueue_script che ho trovato sul web… l’ho scritta in 2.000 modi diversi e non ne funziona nessuno…
    Ora, il codice java funziona perchè se lo inserisco direttamente nel footer con uno script lavora, quindi è evidente che il mio problema è come è scritto il pezzo sulla function.php
    Attualmente ho inserito questo codice:

    
    function mybutton() {
    	wp_enqueue_script('jquery', './js/second_slider_button.js', array(), null, true);
    }
    add_action('wp_enqueue_scripts', 'mybutton');
    

    Ho provato anche ad usare la parte con wp_deregister_script che alcuni suggerivano ma il sito la prende malissimo e rimane delle ore a pensarci sù.
    Vi prego qualcuno mi dica dove sto sbagliando!!!!!
    Grazie in anticipo.

Stai vedendo 6 repliche - dal 1 al 6 (di 6 totali)
  • Moderatore Cristiano Zanca

    (@cristianozanca)

    Salve @babigalad ,

    il consiglio è di provare con questo:

    function mybutton() {
    	wp_enqueue_script('mybutton', get_stylesheet_directory_uri() . './js/second_slider_button.js', array('jquery'), null, true);
    }
    add_action('wp_enqueue_scripts', 'mybutton');

    Facci sapere

    babigalad

    (@babigalad)

    Salve @cristianozanca,
    grazie per il codice, purtroppo non funziona 🙁
    Siccome io sono super profano ti chiedo un paio di cose di conferma:

    1- oltre a questo, in teoria, non dovrei fare nient’altro vero? Questo è l’unico codice da scrivere che dovrebbe mostrarmi il mio bottone, non devo inserire codici in altre pagine?

    2- e questo è il mio punto dolente: il nome della funzione “mybutton” l’ho dato io, è arbitrario… devo forse dargli un nome che sia contenuto nell’istruzione java? (magari è qui che sbaglio e non lo so)

    Grazie.

    —- Aggiunta —-

    Facendo altre personalizzazioni mi sono accorto che anche i comandi che scrivo nel file style.css del tema child non stanno funzionando… sono molto perplesso perché ho usato lo stesso tema, con un child, in un altro sito e funziona perfettamente… potrebbero esserci, secondo voi, problemi legati al fatto che questo sito poggia su altervista?

    • Questa risposta è stata modificata 1 mese fa da babigalad.
    Moderatore Cristiano Zanca

    (@cristianozanca)

    c”era forse un punto di troppo, e un nome che è meglio cambiare.

    prova questo:

    function mybutton() {
    	wp_enqueue_script('mybutton-custom-script', get_stylesheet_directory_uri() . '/js/second_slider_button.js', array('jquery'), null, true);
    }
    add_action('wp_enqueue_scripts', 'mybutton');
    babigalad

    (@babigalad)

    Grazie @cristianozanca, sei gentilissimo!!!!
    Purtroppo pare non funzioni neanche questo ma se vedi quanto ho scritto sopra nell’aggiunta (ci siamo sovrapposti) temo che ci sia un problema più grosso legato al tema child anche se davvero non capisco quale possa essere dato che i file per creare il tema child li ho scaricati direttamente dal sito della aThemes e questo problema del bottone è stata la prima cosa che ho cercato di fare quindi non avevo ancora toccato in nessun modo i file del child :/
    Mi sa che prima di qualsiasi altra cosa provo a reinstallarlo… vi faccio sapere come và!

    Moderatore Cristiano Zanca

    (@cristianozanca)

    leggendo questo:

    Ora, il codice java funziona perchè se lo inserisco direttamente nel footer con uno script lavora, quindi è evidente che il mio problema è come è scritto il pezzo sulla function.php

    c’è scritto java ma si intende javascript?

    Facciamo un passo indietro: è stato usato uno strumento come inspector o firebug per vedere se il file second_slider_button.js viene caricato?

    Un consiglio è fare un Tema Child a mano ( è spiegato molto bene qui https://codex.wordpress.org/Child_Themes ) e su quello includere nel function.php lo script.

    Il tema “padre” non deve essere stato modificato in alcun modo, per evitare ogni dubbio riscaricarlo e installarlo.

    Facci sapere

    Salve @cristianozanca,
    hai ragione, scusa le imprecisioni, ricapitolo meglio il pezzo a cui ti riferisci: intendo javascript e, più precisamente, ho inserito quanto segue:

    <script type="text/javascript">
    jQuery(function($) {
           var myButton = '<a href="http://example.org" class="roll-button button-slider">My Button</a>';
           $( '.slide-inner' ).append(myButton);
    });
    </script>

    come ultima riga del footer del tema child. Non ho usato altri metodi di controllo, questo funzionava cioè il bottone veniva mostrato.
    Il tema “padre”non è mai stato toccato. Ho provato a reinserire il tema child da zero scrivendolo (come mi suggerisci) ma non cambia nulla (ed in effetti ciò che era contenute nei due file principali cioè functions.php e style.css era lo stesso alla fine).
    Il fatto che qualcosa di strano ci sia inerente al funzionamento del child su Altervista me lo suggerisce anche il fatto che nell’altro mio sito (che poggia su Aruba) ho cambiato lo screenshot.png del tema child per non rischiare di incasinarmi quando lo gestisco dalla bacheca di wordpress e, ovviamente non ho vuto alcun problema… ho fatto la stessa cosa qui su Altervista e il nuovo screenshot non me o vede! Se lo elimino non me lo mostra ma se lo cambio mi mostra sempre quello originale.

    Per curiosità comunque ho provato a vedere se il tutto funziona sull’altro mio sito e purtroppo non funziona neanche lì.

    Ricapitolando io ho, nel child, il file functions.php che contiene solo il seguente codice:

    
    /**
     * Sydney child functions
     *
     */
    
    /**
     * Enqueues the parent stylesheet. Do not remove this function.
     *
     */
    add_action( 'wp_enqueue_scripts', 'sydney_child_enqueue' );
    function sydney_child_enqueue() {
        
        wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
    
    }
    
    /* ADD YOUR CUSTOM FUNCTIONS BELOW */
    

    e il file style.css che contiene il seguente codice:

    
    /*
    Theme Name: Sydney Child
    Theme URI: http://athemes.com/theme/sydney
    Template: sydney
    Version: 1.0
    License: GNU General Public License v2 or later
    License URI: http://www.gnu.org/licenses/gpl-2.0.html
    Text Domain: sydney
    */
    

    e fin qui tutto ok, se inserisco il codice che mi hai dato tu Cristiano e poi metto in una cartella chiamata “js” il codice del java (cioè quello che ho scritto all’inizio ma senza la parte <script></script>) salvandolo col nome “second_slider_button.js” dovrebbe funzionare, giusto?

    • Questa risposta è stata modificata 4 settimane, 1 giorno fa da babigalad.
    • Questa risposta è stata modificata 4 settimane, 1 giorno fa da babigalad.
Stai vedendo 6 repliche - dal 1 al 6 (di 6 totali)
  • Devi essere collegato per rispondere a questo topic.