Come modificare ciò che viene visualizzato in wp_head, sia dal tema che da WordPress in generale?
Sto lavorando sulle prestazioni del mio sito utilizzando YSLOW e ho notato che WordPress sta includendo elementi nell'intestazione del documento che so di non aver bisogno.
Ad esempio, sto già caricando jQuery 1.9 dal CDN di Google, quindi non ho bisogno del caricamento di jQuery da wp-includes.
Inoltre, un plugin sta includendo un foglio di stile che non mi serve (perché sto sovrascrivendo il 99% di quegli stili nel mio tema), quindi vorrei eliminare anche quel caricamento.
Quindi come posso modificare ciò che viene visualizzato dalla funzione wp_head()
, sia che sia WordPress a inserirlo (come il caricamento di jQuery da wp-includes
) o un plugin (come il caricamento del foglio di stile)?

Primo: non caricare versioni personalizzate degli script inclusi nel core di WordPress, incluso (e soprattutto) jQuery.
Secondo, per rispondere alla tua domanda: quegli script e fogli di stile dei Plugin vengono accodati, utilizzando add_action()
, tramite una callback collegata a uno dei seguenti action hook:
wp_head
wp_enqueue_scripts
wp_print_scripts
wp_print_styles
(Ce ne sono altri, ma questi sono i più probabili.)
All'interno della callback, vengono utilizzate le seguenti funzioni per accodare:
- Fogli di stile:
wp_enqueue_style()
- Script:
wp_enqueue_script()
Quindi, per un foglio di stile accodato da un Plugin, chiamato foobar.css
, dovresti cercare nei file del Plugin le chiamate a wp_enqueue_style()
, quindi annotare il nome della funzione callback in cui viene chiamata. Poi, trova la chiamata add_action()
che fa riferimento a quella funzione callback. Ad esempio:
add_action( 'wp_head', 'pluginname_enqueue_styles' );
Una volta trovata quella chiamata, puoi sovrascriverla tu stesso, utilizzando remove_action()
:
remove_action( 'wp_head', 'pluginname_enqueue_styles' );

Non sono d'accordo che sovrascrivere le versioni predefinite con una versione ospitata su CDN sia una cattiva pratica. Tuttavia, spetta a te assicurarti di utilizzare una versione compatibile con tutti i tuoi plugin. Assicurati di testare accuratamente.
Per sovrascrivere la versione predefinita di jQuery con quella del CDN, aggiungi qualcosa come questo al tuo functions.php
:
function replace_jquery() {
if (!is_admin()) {
wp_deregister_script('jquery');
wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js', false, '1.9.1');
wp_enqueue_script('jquery');
}
}
add_action('init', 'replace_jquery');
