Come impedire a WordPress di caricare la libreria jQuery all'inizio della pagina

20 mar 2013, 23:02:08
Visualizzazioni: 19.7K
Voti: 6

Sto sviluppando un sito che deve essere sicuro HTTPS e WordPress sta caricando <script src="http://code.jquery.com/jquery-1.7.1.min.js"></script> proprio all'inizio della mia pagina, prima del tag <html> causando un errore di insicurezza. Non riesco a trovare da dove viene caricato per impedirne il caricamento.

Purtroppo non posso mostrare il sito poiché è un sito di una credit union federale e sarebbe contro il nostro accordo contrattuale presentare questo sito pubblicamente prima che sia completato.

Ecco uno screenshot del problema tramite gli strumenti di sviluppo di Chrome (clicca per ingrandire):

Strumenti di sviluppo Chrome che mostrano il caricamento insicuro di jQuery

5
Commenti

è il tuo tema o un plugin, il core di WordPress e i temi predefiniti non fanno questo.

Milo Milo
20 mar 2013 23:08:13

Ho disattivato tutti i miei plugin per vedere se avrebbe risolto il problema ma non è successo. Il sito è costruito su un framework personalizzato e non ho nulla al suo interno che carichi quella libreria. Penso che sia una sorta di problema ereditato con wp_enqueue_script.

Anthoney Carter Anthoney Carter
20 mar 2013 23:15:56

non sono sicuro di cosa intendi con problema ereditato di wp_enqueue_script. WordPress carica la sua versione di jQuery dalla cartella includes, quindi è il tuo tema che sta facendo qualcosa da qualche parte.

Milo Milo
20 mar 2013 23:20:11

Concordo con Milo. Se i tuoi plugin sono stati eliminati, può essere solo il tuo tema. Prova a passare a un tema standard (twentysomething). Il problema scompare? Certo che sì.

vancoder vancoder
20 mar 2013 23:46:50

Ti rendi conto che l'URL del sito è nello screenshot che hai aggiunto?

RiddleMeThis RiddleMeThis
17 set 2019 23:26:02
Tutte le risposte alla domanda 2
2
13

Quando creo temi, mi piace anche rendere l'header di WordPress il più pulito possibile per poi ricostruirlo secondo i miei gusti. Il codice seguente è eccessivo per la tua domanda, ma potrebbe esserti utile per altri 'codici inseriti da WordPress' in futuro. Lo snippet chiave che stai cercando è

wp_deregister_script('jquery'); 
wp_register_script('jquery', '', '', '', true);

Inserisci questo nel tuo file functions.php.

La mia pulizia completa dell'header di WordPress:

/* =Pulizia dell'head di WordPress
------------------------------------------------- */

    // rimuovi i link nell'header
    add_action('init', 'tjnz_head_cleanup');
    function tjnz_head_cleanup() {
        remove_action( 'wp_head', 'feed_links_extra', 3 );                      // Feed per categorie
        remove_action( 'wp_head', 'feed_links', 2 );                            // Feed per articoli e commenti
        remove_action( 'wp_head', 'rsd_link' );                                 // Link EditURI
        remove_action( 'wp_head', 'wlwmanifest_link' );                         // Windows Live Writer
        remove_action( 'wp_head', 'index_rel_link' );                           // link indice
        remove_action( 'wp_head', 'parent_post_rel_link', 10, 0 );              // link precedente
        remove_action( 'wp_head', 'start_post_rel_link', 10, 0 );               // link iniziale
        remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0 );   // Link per articoli adiacenti
        remove_action( 'wp_head', 'wp_generator' );                             // Versione WP
        if (!is_admin()) {
            wp_deregister_script('jquery');                                     // Deregistra jQuery
            wp_register_script('jquery', '', '', '', true);                     // Registra come 'vuoto', perché inseriamo manualmente il nostro script in header.php
        }
    }

    // rimuovi la versione WP dagli RSS
    add_filter('the_generator', 'tjnz_rss_version');
    function tjnz_rss_version() { return ''; }
21 mar 2013 11:35:13
Commenti

Grazie, @Marc! La funzione wp_deregister_script ha funzionato perfettamente. Non sto utilizzando nessuna delle funzionalità del tema WordPress, sto scrivendo il mio head, header, content, footer, ecc. Quindi ero confuso sul perché stesse caricando quella libreria jQuery.

Anthoney Carter Anthoney Carter
21 mar 2013 17:23:16

@AnthoneyCarter ancora una volta, se proviene da code.jquery.com non è WordPress ad essere responsabile. Questo semplicemente deregistra jQuery che è stato registrato altrove dal tema o da un plugin. Inoltre, sicuramente romperai cose se usi un plugin che richiede jQuery. Fare questo non è raccomandato, procedi a tuo rischio.

Milo Milo
21 mar 2013 20:55:01
0

Puoi anche scaricare la libreria da jQuery.com e caricarla come un normale script nel tuo file functions.php e terminare wp_enqueue_script con un parametro true, questo stampa lo script appena prima del tag </body>.

wp_enqueue_script('customjquery', get_template_directory_uri(). '/js/jquery.min.js', array(), '2.1.4', true);

WordPress utilizza ancora jQuery 1.qualcosa credo. Io includo jQuery separatamente perché sto usando l'ultima versione di bootstrap e voglio l'ultima versione di jQuery. Ricorda solo di aggiungere true alla tua dichiarazione

1 set 2015 03:48:07