Modificarea conținutului afișat de wp_head în WordPress - Cum să elimini elementele inutile
Am lucrat la optimizarea performanței site-ului meu folosind YSLOW și am observat că WordPress afișează în header elemente de care nu am nevoie.
De exemplu, deja includ jQuery 1.9 de pe CDN-ul Google, așa că nu am nevoie de apelul către jQuery din wp-includes.
De asemenea, un plugin include o foaie de stil de care nu am nevoie (pentru că suprascriu 99% din acele stiluri în tema mea), așa că aș vrea să elimin și acel apel.
Deci cum pot edita ce este afișat de funcția wp_head()
, fie că WordPress adaugă acel conținut (cum ar fi apelul jQuery din wp-includes
) sau un plugin (cum ar fi apelul către foaia de stil)?

În primul rând: nu încărca versiuni personalizate ale scripturilor incluse în nucleul WordPress, inclusiv (și mai ales) jQuery.
În al doilea rând, pentru a răspunde la întrebarea ta: acele scripturi și fișiere de stil ale Plugin-ului sunt înșirate, folosind add_action()
, prin intermediul unei funcții callback atașate la unul dintre următoarele hook-uri de acțiune:
wp_head
wp_enqueue_scripts
wp_print_scripts
wp_print_styles
(Există și altele, dar acestea sunt cele mai probabile.)
În interiorul funcției callback, următoarele funcții sunt folosite pentru înșirare:
- Fișiere de stil:
wp_enqueue_style()
- Scripturi:
wp_enqueue_script()
Deci, pentru un fișier de stil al unui Plugin înșirat, numit foobar.css
, ar trebui să cauți în fișierele Plugin-ului apeluri către wp_enqueue_style()
, apoi să notezi numele funcției callback în care este apelată. Apoi, găsește apelul add_action()
care face referire la acea funcție callback. De exemplu:
add_action( 'wp_head', 'pluginname_enqueue_styles' );
După ce ai găsit acel apel, poți să-l suprascrii tu însuți, folosind remove_action()
:
remove_action( 'wp_head', 'pluginname_enqueue_styles' );

Nu sunt de acord că înlocuirea versiunilor implicite cu o versie găzduită pe CDN este o practică proastă. Totuși, responsabilitatea cade asupra ta să te asiguri că folosești o versie compatibilă cu toate pluginurile tale. Asigură-te că testezi amănunțit.
Pentru a înlocui jQuery-ul implicit cu versiunea de pe CDN, adaugă ceva similar în fișierul tău 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');
