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.