Własne modyfikacje w functions.php WordPress

Obrazek dla Własne modyfikacje w functions.php WordPress

Poniższy poradnik jest skierowany do początkujących web-developerów znających WordPress w stopniu średnim.

Przedstawiamy kilka ciekawych funkcji i modyfikacji pliku functions.php

Uwaga: Wszelkie błędnie wykonane modyfikacje pliku functions.php moga skutować problemem w działaniu strony. Dlatego należy wykonywać je z zachowaniem kopii pliku functions.php jak i najlepiej całej strony.

O tym jak wykonać kopie zapasowe pisaliśmy tutaj.

Modyfikacje WordPress dodajemy w pliku functions.php – co wymagą podstawowej znajomości struktury kodu języka PHP. Oczywiście wykonywanie zmian bez posiadania kopii zapasowej pliku functions.php motywu, jest złym pomysłem – dlatego zalecamy wykonanie takiej kopi zapasowej pliku. Generalnie – jeśli nie jesteśmy pewni, zmian które wprowadzamy, zawsze warto posiadać pełną kopię zapasową naszej strony (pliki + baza).

Plik functions.php znajduje się w katalogu używanego przez nas motywu.

Dla mniej obeznanych/bardziej wygodnych polecamy wtyczkę Code Snippets
Wtyczka ta pozwoli na łatwe dodanie własnych kawałków kodu, bez potrzeby edycji bezpośrednio pliku functions.php

Informacja o WordPress

Standardowo WordPress wrzucą informację o sobie w nagłówku strony, boty korzystają z tej informacji, możemy ją wyłączyć dodając poniższy kod.

Info: ta informacja jest również umieszczona w pliku readme.html w katalogu głównym WordPress, można usunąć ten plik lub zabezpieczyć dostęp przez .htaccess

	function wp_remove_version() {
		return '';
		}
		add_filter('the_generator', 'wp_remove_version');

Wyłączenie linka do WP Manifest

remove_action( 'wp_head', 'wlwmanifest_link');

W celu zabezpieczenia swojego WordPress polecamy nasz wcześniejszy poradnik Poprawa bezpieczeństwa w WordPress

kod usuń wp generator

Wyłącz Strony z wyników wyszukiwań

function filter_search($query) {
    if ($query->is_search) {
        $query->set('post_type', 'post');
    }
    return $query;
}
add_filter('pre_get_posts', 'filter_search');

Wyniki wyszukiwania – przekierowanie

Przekieruj od razu do widoku Wpisu, jeśli wyszukiwanie zwróci tylko jeden wpis.

add_action('template_redirect', 'redirect_single_post');
function redirect_single_post() {
    if (is_search()) {
        global $wp_query;
        if ($wp_query->post_count == 1 && $wp_query->max_num_pages == 1) {
            wp_redirect( get_permalink( $wp_query->posts['0']->ID ) );
            exit;
        }
    }
}

Excerpt

Zmiana ilości wyrazów w zajawce (excerpt) do np. dwudziestu.

function custom_excerpt_length( $length ) {
    return 20;
}
add_filter( 'excerpt_length', 'custom_excerpt_length', 999 );

Pasek administratora

Wyłączanie paska WordPress na widoku strony po zalogowaniu, tzw. admin bar.

add_filter( 'show_admin_bar', '__return_false' );

TAGi na wszystko

Uwzględnianie wszystkich typów postów w TAGach

function any_ptype_on_tag($request) {
    if ( isset($request['tag']) )
        $request['post_type'] = 'any';
    return $request;
}
add_filter('request', 'any_ptype_on_tag');

Wyłącz możliwość niebezpiecznych zapytań przez boty

global $user_ID; if($user_ID) {
    if(!current_user_can('administrator')) {
        if (strlen($_SERVER['REQUEST_URI']) > 255 ||
            stripos($_SERVER['REQUEST_URI'], "eval(") ||
            stripos($_SERVER['REQUEST_URI'], "CONCAT") ||
            stripos($_SERVER['REQUEST_URI'], "UNION+SELECT") ||
            stripos($_SERVER['REQUEST_URI'], "base64")) {
                @header("HTTP/1.1 414 Request-URI Too Long");
                @header("Status: 414 Request-URI Too Long");
                @header("Connection: Close");
                @exit;
        }
    }
}

Wyłączanie wyszukiwania

Funkcja wyłączająca wyszukiwanie w obrębie strony. Funkcja działa ale zwróci zerowe wyniki.

function f_wylacz_search( $query, $error = true ) {
if ( is_search() ) {
$query->is_search = false;
$query->query_vars[s] = false;
$query->query[s] = false;
if ( $error == true )
$query->is_404 = true;
}
}
add_action( 'parse_query', 'f_wylacz_search' );
add_filter( 'get_search_form', create_function( '$a', "return null;" ) );

Ustawianie dodatkowego rozmiaru obrazków

Podczas wgrywania obrazów do WordPress, tworzone są z automatu mniejsze rozmiary takie jak

Miniaturka : (150px kwadrat)
Rozmiar Medium : (maximum 300 pikseli szerokość i wysokość);
Rozmiar Duży : (max. 1024 pikseli szerokość i wysokość);
Pełny : (oryginalny przesłany rozmiar).

Pełna lista
https://codex.wordpress.org/Post_Thumbnails

Poniżej możemy wymusić przechowywanie dodatkowych rozmiarów
Na przykładzie nazwa=”gal_min” rozmiar 400×300, przytnij (true)
Na przykładzie nazwa=”sidebar” rozmiar 100×100, nie przycinaj (false)

add_theme_support( 'post-thumbnails' );
add_image_size( 'gal_min', 400, 300, true );
add_image_size( 'sidebar', 100, 100, false );

Własny [shortcode]

Shortcode to skrócona nazwa funkcji w PHP, która zostanie wykonana po wpisaniu [nazwa] w edytorze treści WordPress.

Wyświetl obecny rok

Shortcode: [rok]

function wyswietl_rok() {
  $year = date('Y');
  return $year;
}
add_shortcode('rok', 'wyswietl_rok');

Wyświetl przycisk Facebook polub

Shortcode: [fblike]

function facebook_like() {
  echo '<iframe src="//www.facebook.com/plugins/like.php?href=http://www.facebook.com/plugins/like.php?href=<?php echo rawurlencode(get_permalink()); ?>&amp;width&amp;layout=standard&amp;action=like&amp;show_faces=true&amp;share=true&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; height:80px;" allowTransparency="true"></iframe>';
}_shortcode('fblike', 'facebook_like');

Własne modyfikacja functions.php

Modyfikacje zostały przetestowane z WordPress w wersji 5.0.1.

To wszystko!

Mamy nadzieję że pomoże Wam to w zrozumieniu, jak można modyfikować swój WordPress projektując lub administrując witrynę.

Sprawdź też część #2: Jak edytować plik functions.php w WordPress i ciekawe kody

Szukasz więcej ciekawych kodów WordPress?

Koniecznie zajrzyj na naszą wiki do sekcji Pomoc WordPress. Znajdziesz tam nie tylko porady dla początkujących ale i także dla developerów projektujących własne motywy WordPress.

Przegląd prywatności
hitme logo

Ta strona korzysta z ciasteczek, aby zapewnić Ci najlepszą możliwą obsługę. Informacje o ciasteczkach są przechowywane w przeglądarce i wykonują funkcje takie jak rozpoznawanie Cię po powrocie na naszą stronę internetową i pomaganie naszemu zespołowi w zrozumieniu, które sekcje witryny są dla Ciebie najbardziej interesujące i przydatne.

Ściśle niezbędne ciasteczka

Niezbędne ciasteczka powinny być zawsze włączone, abyśmy mogli zapisać twoje preferencje dotyczące ustawień ciasteczek.

Facebook Pixel

Używamy narzędzia Facebook Pixel, aby śledzić działania użytkowników na naszej stronie internetowej. Facebook Pixel umożliwia nam analizowanie skuteczności reklam oraz tworzenie spersonalizowanych treści marketingowych. Dzięki temu możemy lepiej dostosować naszą ofertę do Twoich potrzeb. Zbierane dane mogą obejmować m.in. informacje o odwiedzonych stronach, kliknięciach oraz konwersjach.

Bezpieczna analityka

W celu lepszej analizy ruchu na naszej stronie internetowej korzystamy z narzędzia Matomo Analytics. Matomo jest hostowane w naszej infrastrukturze, a zbierane dane nie są udostępniane żadnym podmiotom zewnętrznym. Informacje o Twojej aktywności na stronie służą jedynie do analizy statystycznej oraz poprawy jakości naszych usług, zgodnie z przepisami RODO/GDPR.

Dane są w pełni anonimowe i nie są przekazywane poza naszą firmę.