Modificarea conținutului afișat de wp_head în WordPress - Cum să elimini elementele inutile

13 apr. 2013, 15:08:57
Vizualizări: 19.3K
Voturi: 5

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)?

0
Toate răspunsurile la întrebare 2
0

Î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:

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' );
13 apr. 2013 15:17:23
0

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');
13 apr. 2013 15:23:38