Własne modyfikacje w functions.php WordPress

Przedstawiamy kilka ciekawych funkcji i modyfikacji pliku functions.php


img

Dowiesz się: Poniższy poradnik jest skierowany do początkujących web-developerów znających Wordpress w stopniu średnim oraz HTML/PHP w stopniu podstawowym. Obrazuje on w jaki sposób nadpisać działanie wielu funkcji Wordpress.

Dla systemu operacyjnego: Każdy

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

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');

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ę.

 

3198 wyświetleń

Podziel się lub polub!

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

nineteen − one =

NASTĘPNY ARTYKUŁ



Zapraszamy do HitMe.pl


Twój obecny hosting Cię męczy i ...

…i nie masz czasu na ciągłe zmiany i szukanie nowych opcji? Wybierz naszą ofertę – znajdziesz u nas pakiet idealnie dopasowany do Twoich potrzeb, a jeśli go nie ma – chętnie przygotujemy indywidualne rozwiązanie, a wszystko to w sposób, który nie obciąży Cię finansowo.