W tym wpisie przedstawimy Wam 10 bardzo przydatnych funkcji, które mogą pomóc w personalizacji WordPressa. Większość z nich jest czymś w rodzaju ‘must-have’ dla administratorów stron WP dbających o podstawowe bezpieczeństwo oraz optymalizację tworzonych witryn, pozostałe stanowią cenne wskazówki do zwiększenia ich funkcjonalności.

Każdą z poniższych funkcji należy umieścić w pliku functions.php w motywie głównym lub potomnym, dla którego więcej informacji możecie znaleźć w artykule Jak stworzyć motyw potomny w WordPress.

1. Usuwanie wersji WordPress z kodu strony

Czasem zdarza się, że z jakichś przyczyn nie zaktualizujemy wersji WP i jesteśmy do tyłu kilka wydań, często łatających dziury bezpieczeństwa. Tym bardziej dobrze jest ukryć informację o posiadanej wersji systemu, a oto linijka kodu, która w tym pomoże

remove_action('wp_head', 'wp_generator');

2. Niestandardowa treść błędów logowania

Zmiana domyślnej treści komunikatu błędu po nieudanej próbie logowania zmniejszy szanse włamywacza na sprawdzenie, która zmienna generuje błąd. Zamiast ‘niepoprawny login’ zobaczy ‘Wystąpił błąd! Spróbuj ponownie.’ – to duża różnica!

function no_wordpress_errors(){
return 'Wystąpił błąd! Spróbuj ponownie.';
}
add_filter( 'login_errors', 'no_wordpress_errors' );

3. Zmiana wersji jQuery

Aktualna wersja biblioteki jQuery pozwoli na niezakłócone działanie skryptów funkcjonujących na stronie, szczególnie po aktualizacji silnika WP część starych funkcji może zostać przedawniona (z ang. ‘deprecated’).

function replace_core_jquery_version() {
wp_deregister_script( 'jquery' );
// Zmień URL jeśli chcesz załadować plik lokalny lub ze swojego serwera
wp_register_script( 'jquery', „https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js”, array(), '3.4.1' );
}
add_action( 'wp_enqueue_scripts', 'replace_core_jquery_version' );

4. Wyłączenie opcji wyszukiwarki w WordPress

Obszerne strony wręcz wymagają posiadania wewnętrznej wyszukiwarki, chociażby do odnalezienia konkretnego wpisu, tagu czy kategorii. Niestety wraz z funkcją przychodzi brak konfiguracji, co często nie jest w stanie sprostać wymaganiom użytkowników… Dla witryn, gdzie nie jest to konieczne, opcja ta jest całkowicie zbędna.

function fb_filter_query( $query, $error = true ) {

if ( is_search() ) {
$query->is_search = false;
$query->query_vars[s] = false;
$query->query[s] = false;

// to error
if ( $error == true )
$query->is_404 = true;
}
}

add_action( 'parse_query', 'fb_filter_query' );
add_filter( 'get_search_form', create_function( '$a', "return null;" ) );

5. Wyłączenie generowania thumbnaili

WordPress domyślnie narzuca nam generowanie wielu wariantów rozmiarów dla przesyłanego obrazu/zdjęcia. Proste strony z nawigacją pionową lub nie posiadające wielu grafik najczęściej nie wymagają tworzenia kopii pliku w różnych konfiguracjach, które zajmują miejsce.

function add_image_insert_override($sizes){
unset( $sizes['thumbnail']);
unset( $sizes['medium']);
unset( $sizes['large']);
return $sizes;
}
add_filter('intermediate_image_sizes_advanced', 'add_image_insert_override' );

6. Wyłączenie WLManifest Link oraz RSD Link

Używasz tagowania kompatybilnego z Windows live server? Jeśli nie, spokojnie możesz usunąć wsparcie dla tego typu oznaczeń.

remove_action( 'wp_head', 'wlwmanifest_link' ) ;
remove_action('wp_head', 'rsd_link');

7. Usuwanie emotikonów WP

Prowadząc bloga i/lub umożliwiając ludziom dodawanie komentarzy do Waszych treści z całą pewnością przydadzą się emotikony, które skutecznie urozmaicają te sekcje.
W przeciwnym razie, pracując na statycznych stronach bez ww. funkcji, ze spokojem możemy je wyłączyć.

remove_action('wp_head', 'print_emoji_detection_script', 7);
remove_action('wp_print_styles', 'print_emoji_styles');
remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );
remove_action( 'admin_print_styles', 'print_emoji_styles' );

8. Usuwanie pustych tagów <p></p> z kodu

Jedną z wbudowanych funkcji WP jest dodawanie pustych tagów p do treści, które zastępują przełamania linii czy odstępy między zamierzonymi paragrafami. Niestety, taka konstrukcja brzydko wygląda w kodzie i dodatkowo negatywnie wpływa na odbiór wizualny witryny.

add_filter('the_content', 'remove_empty_p', 20, 1);
function remove_empty_p($content){
$content = force_balance_tags($content);
return preg_replace('#<p>\s*+(<br>\s*/*>)?\s*</p>#i', '', $content);
}

9. Dodawanie nowych rozszerzeń przesyłanych plików

Poniżej znajdziecie kod funkcji, która umożliwia upload plików w formacie svg oraz psd, które nie są możliwe w pierwotnej instalacji WordPressa. Przy okazji zalecamy zapoznać się z artykułem a propos /zwiększanie limitu przesyłanych danych w wordpress/, jako, że pliki w nowych rozszerzeniach mogą nie spełniać wymagań do przesłania danych na serwer.

function moje_rozszerzenia($mime_types){
$mime_types['svg'] = 'image/svg+xml'; //Adding svg extension
$mime_types['psd'] = 'image/vnd.adobe.photoshop'; //Adding photoshop files
return $mime_types;
}
add_filter('upload_mimes', 'moje_rozszerzenia', 1, 1);

10. Zmień tekst 'czytaj więcej' w zajawkach postów

Jeśli korzystacie z tak zwanych ‘zajawek’ na Waszym blogu i chcecie zmienić standardowy tekst na przycisku, umieśćcie w pliku functions.php następującą dyrektywę z żądanym tekstem(zamiast ‘MÓJ NOWY TEKST’):

function modify_read_more_link() {
return '<a class=”more” href=”' . get_permalink() . '”>MÓJ NOWY TEKST</a>';
}
add_filter( 'the_content_more_link', 'modify_read_more_link' );

Mamy nadzieje, że to krótkie zestawienie będzie pomocne. Oczywiście funkcji moglibyśmy wymienić znacznie więcej, jednak ograniczyliśmy się do tych, które są powszechnie stosowane przez deweloperów.

Odwiedź nas na Facebooku i Instagramie,
-BSIDEWORK Team #innowacjewpraktyce