Niepotrzebne skrypty .js i .css we wtyczkach WordPress [Lista]

Pozbywamy się niepotrzebnych plików .css i .js automatycznie dodawane przez wtyczki. Nie zawsze są one potrzebne dlatego twórcy czasami dają nam możliwość ich wyłączenia.

Contact form 7

add_filter( 'wpcf7_load_js', '__return_false' );
add_filter( 'wpcf7_load_css', '__return_false' );

All in One SEO Pack

Wtyczka dodaje plik admin-toolbar-menu.css w którym zdefiniowane jest logo wyświetlające się w admin barze, gdy użytkownik jest zalogowany. Dlatego wyłączanie tego nie jest bardzo konieczne. Przydatne w momencie, gdy nie używamy admin bar

add_action('wp_print_styles', 'deregister_aioseop_style', 100 );
function deregister_aioseop_style() {
 wp_deregister_style( 'aioseop-toolbar-menu' );
}

WP-PageNavi

Wyłączenie standardowego stylowania wtyczki

add_action( 'wp_print_styles', 'my_deregister_styles', 100 ); 
function my_deregister_styles() { 
 wp_deregister_style('wp-pagenavi');
}

Alternatywne usuwanie wybranych plików wtyczki

Jeżeli wtyczka nie posiada opcji do wyłączania plików, jest szansa na rozwiązanie alternatywne. W WP istnieje możliwość wyłączenia poszczególnych plików javascript i css poprzez akcje wp_enqueue_scripts (więcej na temat akcji i filtrów WordPress tutaj)

Przykładowo, wtyczka Instagram feed nie posiada odpowiednich akcji do wyłączania plików. Jeżeli chciałbym napisać własny css i nie wczytywać pliku css dostarczonego z wtyczką to.:

Lokalizuje <link> css wtyczki w kodzie strony:

W tym przypadku będzie to id="sb_instagram_styles-css" id jest potrzebne do zidentyfikowania wtyczki w kolejce plików do wczytania.

W pliku functions.php aktywnej skórki dodaje odpowiedni kod, który wyłączy z kolejki plik o danym id.

add_action('wp_enqueue_scripts', function(){
	wp_dequeue_style( 'sb_instagram_styles' );
});

Przy podawaniu nazwy pomijam sufix ***-css , który odpowiednio do wp_dequeue_script będzie ***-js

Warunkiem działania tego rozwiązania jest to, że twórca wtyczki dodawał assety używając akcji wp_enqueue_style do css oraz wp_register_script do js.

WordPress Core

Admin bar

Wyłączenie admin bar dla wszystkich zalogowanych użytkowników bez względu na uprawnienia:

add_filter('show_admin_bar', '__return_false');

Lub jeżeli masz taką fantazję, wyłączenie admin bar dla grup uprawnień:

add_action('after_setup_theme', 'remove_admin_bar');
function remove_admin_bar() {
   if (!current_user_can('administrator') && !is_admin()) {
   show_admin_bar(false);
}

W tym konkretnym przypadku admin bar zostanie wyłączony dla wszystkich ról prócz administratora.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *