Jak odchudzić WordPress 4.4 w kilku krokach – poradnik praktyczny
Wczoraj zdecydowałem się w końcu zaktualizować WP do najnowszej wersji (aktualnie 4.4) i z tej okazji postanowiłem podzielić się z Wami kilkoma poradami i spostrzeżeniami. Jak to często bywa, z nową wersją przychodzą również i nowe funkcje, które w wielu przypadkach nie są nam zupełnie potrzebne – i o tym już za chwilę :) Dla osób niezaznajomionych z naszymi innymi, wcześniejszymi tekstami dotyczącymi WP i rekomendowanych wtyczek, polecam lekturę:
7 porad, które pomogą Ci w prowadzeniu bloga na platformie WordPress —> Przejdź do poradnika |
|
Najlepsze wtyczki do WordPressa 2023, czyli przydatne i darmowe pluginy! —> Przejdź do poradnika |
Teraz możemy przejść do meritum sprawy. WordPress 4.4 przyniósł szereg nowych funkcji, takich jak lepsza obsługa responsywnych obrazków, osadzanie wpisów z innych witryn bezpośrednio wewnątrz treści oraz infrastrukturę dla REST API – szczegóły znajdziecie tutaj. Nie zawsze jednak korzystanie z tych funkcji będzie nam potrzebne, dlatego pokażemy jak pozbyć się części z nich oraz przy okazji „odchudzić” nieco naszego WP. Pamiętajcie również, że wszystkie modyfikacje możecie wprowadzać bezpośrednio w pliku functions.php Waszego motywu (Menu –> Wygląd –> Edytor).
1. Usuwamy linki REST API
Jak już wspominałem wcześniej, WordPress 4.4 przyniósł wiele nowych elementów, a jednym z nich jest obsługa infrastruktury REST API. Jeśli jednak wkurzają Was niepotrzebne linki w sekcji HEAD, to możecie je usunąć – przykład poniżej:
<link rel='https://api.w.org/' href='http://przykladowastrona.pl/wp-json/' />
Do usunięcia przydatny będzie poniższy kod (usuwa link, nie obsługę REST API):
/* Remove header link for REST API (WordPress 4.4+)
/* ------------------------------------ */
remove_action( 'xmlrpc_rsd_apis', 'rest_output_rsd' );
remove_action( 'wp_head', 'rest_output_link_wp_head', 10 );
remove_action( 'wp_head', 'wp_oembed_add_discovery_links', 10 );
remove_action( 'template_redirect', 'rest_output_link_header', 11 );
Jeśli nie chcecie ręcznie wprowadzać zmian w pliku funkcji motywu (plik functions.php), zawsze możecie wykorzystać do tego celu gotową wtyczkę, jak Disable WP REST API czy Disable REST API – wybór należy do Was.
2. Pozbywamy się funkcji osadzania wpisów
Osobiście nie korzystam z tej funkcji, a do materiałów wideo wykorzystuję osobną wtyczkę. Niezależnie jednak czy korzystacie z osadzania wpisów, czy nie – obsługa tej funkcji i tak się ładuje (od WP w wersji 4.4 także w nagłówku i stopce) – dla przykładu, kod w stopce wygląda następująco:
<script type='text/javascript' src='http://przykladowastrona.pl/wp-includes/js/wp-embed.min.js?ver=4.4'></script>
By się go pozbyć wystarczy wrzucić kilka linijek w functions.php:
/* Remove footer link for wp-embed.js (WordPress 4.4+)
/* ------------------------------------ */
function my_deregister_scripts() {
wp_deregister_script( 'wp-embed' );
}
add_action( 'wp_footer', 'my_deregister_scripts' );
W tym wypadku również możemy wspomóc się wtyczką, zainteresowanym polecam sprawdzenie pluginu Disable Embeds, który zrobi to za Was.
3. Po co komu obsługa ikonek Emoji? :)
Od WordPress w wersji 4.2 w hederze ładuje się skrypt do obsługi ikon Emoji, niezależnie od tego czy używamy ich, czy też nawet o nich nie słyszeliśmy. Ponadto w sekcji HEAD znajdziemy poniższy kod (oj sporo tego):
<script type="text/javascript"> window._wpemojiSettings = {"baseUrl":"http:\/\/s.w.org\/images\/core\/emoji\/72x72\/","ext":".png","source":{"concatemoji":"http:\/\/przykladowastrona.pl\/wp-includes\/js\/wp-emoji-release.min.js?ver=4.4"}}; !function(a,b,c){function d(a){var c=b.createElement("canvas"),d=c.getContext&&c.getContext("2d");return d&&d.fillText?(d.textBaseline="top",d.font="600 32px Arial","flag"===a?(d.fillText(String.fromCharCode(55356,56806,55356,56826),0,0),c.toDataURL().length>3e3):("simple"===a?d.fillText(String.fromCharCode(55357,56835),0,0):d.fillText(String.fromCharCode(55356,57135),0,0),0!==d.getImageData(16,16,1,1).data[0])):!1}function e(a){var c=b.createElement("script");c.src=a,c.type="text/javascript",b.getElementsByTagName("head")[0].appendChild(c)}var f,g;c.supports={simple:d("simple"),flag:d("flag"),unicode8:d("unicode8")},c.DOMReady=!1,c.readyCallback=function(){c.DOMReady=!0},c.supports.simple&&c.supports.flag&&c.supports.unicode8||(g=function(){c.readyCallback()},b.addEventListener?(b.addEventListener("DOMContentLoaded",g,!1),a.addEventListener("load",g,!1)):(a.attachEvent("onload",g),b.attachEvent("onreadystatechange",function(){"complete"===b.readyState&&c.readyCallback()})),f=c.source||{},f.concatemoji?e(f.concatemoji):f.wpemoji&&f.twemoji&&(e(f.twemoji),e(f.wpemoji)))}(window,document,window._wpemojiSettings); </script> <style type="text/css"> img.wp-smiley, img.emoji { display: inline !important; border: none !important; box-shadow: none !important; height: 1em !important; width: 1em !important; margin: 0 .07em !important; vertical-align: -0.1em !important; background: none !important; padding: 0 !important; } </style>
Poniżej kod do pozbycia się obsługi niechcianych ikonek:
/* Disable Emoji icons
/* ------------------------------------ */
function disable_emojis() {
remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );
remove_action( 'wp_print_styles', 'print_emoji_styles' );
remove_action( 'admin_print_styles', 'print_emoji_styles' );
remove_filter( 'the_content_feed', 'wp_staticize_emoji' );
remove_filter( 'comment_text_rss', 'wp_staticize_emoji' );
remove_filter( 'wp_mail', 'wp_staticize_emoji_for_email' );
add_filter( 'tiny_mce_plugins', 'disable_emojis_tinymce' );
}
add_action( 'init', 'disable_emojis' );
function disable_emojis_tinymce( $plugins ) {
if ( is_array( $plugins ) ) {
return array_diff( $plugins, array( 'wpemoji' ) );
} else {
return array();
}
}
Dla leniuchów z pomocą przychodzi wtyczka Disable Emojis, która szybko upora się z problemem niepotrzebnie ładowanych skryptów – i problem z głowy!
4. Wywalamy informacje o wersji WP i inne zbędne linki
I tak dotarliśmy do ostatniego punktu, czyli usunięcia kilku domyślnych (i zupełnie zbędnych) linków w sekcji HEAD, takich jak:
<link rel="EditURI" type="application/rsd+xml" title="RSD" href="http://przykladowastrona.pl/xmlrpc.php?rsd" /> <link rel="wlwmanifest" type="application/wlwmanifest+xml" href="http://przykladowastrona.pl/wp-includes/wlwmanifest.xml" /> <meta name="generator" content="WordPress 4.4" />
Poniższy kod załatwi sprawę i nieco „odchudzi” nagłówek naszego bloga.
/* Remove WP Generator, RSD, WLW
/* ------------------------------------ */
remove_action( 'wp_head', 'wp_generator' );
remove_action( 'wp_head', 'rsd_link' );
remove_action( 'wp_head', 'wlwmanifest_link' );
To by było na tyle. Mam nadzieję, że dla kogoś te kilka porad okaże się pomocne. Zachęcam Was również do korzystania z pomocy technicznej wtyczek i motywów. Może nie zawsze otrzymamy konkretną odpowiedź, ale w większości przypadków ktoś naprowadzi nas na właściwe rozwiązanie – w końcu „nie od razu Rzym zbudowano”.
Czy w nowych aktualizacjach WordPressa (4.9.9 i 5.0) możemy spokojnie użyć tych trików?
Cześć, po aktualizacji do wersji 5.0.2 wszystko działa bez problemów. Ponadto wyłączyłem obsługę Gutenberga i REST API, bo ich nie potrzebuję. Dodam tylko, że od jakiegoś czasu wszystkie tego typu zmiany wprowadzam do osobnej wtyczki, ułatwia to nieco życie ;)
Dzięki. A jak wyłączyłeś obsługę Gutenberga? Zainstalowałeś stary edytor?
Tak, do tego jeszcze dorzuciłem poniższy kod:
/* Remove header link for Gutenberg CSS (WordPress 5.0+)
/* ------------------------------------ */
function remove_block_css() {
wp_dequeue_style( 'wp-block-library' );
}
add_action( 'wp_enqueue_scripts', 'remove_block_css', 100 );
Ok, dzięki!