Przydatne funkcje w pliku functions.php dla WordPress i WooCommerce

Co to jest functions.php i do czego służy?

Głównym zadaniem functions.php jest umożliwienie dodawania niestandardowego kodu PHP do WordPress. Możesz w nim definiować własne funkcje, dodawać akcje, filtry, obsługiwać zdarzenia, dołączać skrypty i style, oraz wiele innych. Możliwości są praktycznie nieograniczone, co pozwala na rozszerzanie WordPress i dostosowanie go do swoich potrzeb.

Funkcje zdefiniowane w functions.php są ładowane wraz z motywami WordPress i wykonują się na różnych etapach przetwarzania strony, takich jak inicjalizacja, ładowanie treści czy renderowanie szablonów. Dzięki temu możesz modyfikować domyślne zachowanie WordPress, dodawać niestandardowe funkcje, modyfikować wygląd i wiele więcej.

Ważne jest jednak pamiętać, że gdy aktualizujesz motyw WordPress, plik functions.php zostanie nadpisany przez nową wersję motywu. Dlatego przed aktualizacją motywu zaleca się zrobienie kopii zapasowej funkcji, które zostały dodane do functions.php. Możesz utworzyć własny plik z funkcjami, który będzie wczytywany z functions.php lub używać dedykowanego pluginu, takiego jak „Code Snippets”, który umożliwia przechowywanie i zarządzanie niestandardowym kodem bez ingerencji w plik functions.php.

Pamiętaj, że funkcje dodane do functions.php powinny być pisane z uwagą i zgodnie z najlepszymi praktykami programistycznymi. Niewłaściwie napisany kod może prowadzić do błędów lub złego funkcjonowania strony. Dlatego zawsze zaleca się testowanie i sprawdzanie działania kodu na środowisku testowym przed zastosowaniem go na stronie produkcyjnej.

Główne funkcje dla pliku functions.php

  • add_action() – umożliwia dodawanie własnych funkcji do hooków WordPress, co pozwala na wykonanie działań w odpowiednich momentach, takich jak ładowanie strony czy przetwarzanie formularzy.
  • add_filter() – pozwala dodawać filtry, które modyfikują dane przed ich wyświetleniem lub przetworzeniem. Jest to przydatne do dostosowywania domyślnego zachowania WordPress i dodawania niestandardowych filtrów.
  • wp_enqueue_script() – służy do dołączania skryptów JavaScript na stronach WordPress. Umożliwia określanie zależności między skryptami oraz wersji i lokalizacji plików.
  • wp_enqueue_style() – umożliwia dołączanie stylów CSS na stronach WordPress. Możesz określić zależności między stylami oraz wersję i lokalizację plików.
  • is_admin() – sprawdza, czy aktualna strona jest stroną administracyjną WordPress, co pozwala na wykonywanie działań tylko na stronach administracyjnych.
  • is_shop() – dla sklepów WooCommerce sprawdza, czy aktualna strona jest stroną sklepu, co umożliwia warunkowe wykonanie pewnych działań tylko na stronach sklepu.
  • get_permalink() – zwraca pełny adres URL do danego posta lub strony na podstawie identyfikatora, co przydaje się przy tworzeniu linków do konkretnych treści.
  • get_template_directory_uri() – zwraca adres URL do katalogu szablonu aktywnego motywu WordPress. Jest to przydatne przy dołączaniu plików CSS lub JavaScript z katalogu motywu.
  • add_shortcode() – umożliwia dodawanie niestandardowych shortcode’ów do WordPress, co pozwala na wstawianie krótkiego kodu i zastąpienie go określoną treścią lub funkcjonalnością.
  • get_post_meta() – dla sklepów WooCommerce zwraca wartość metadanych dla określonego produktu. Możesz użyć tej funkcji do pobrania dodatkowych informacji o produkcie i wykorzystania ich w swoim kodzie.

Konkretne przykłady funkcji

Funkcja, która zwiększa domyślną ilość produktów na stronie w WooCommerce

function increase_products_per_page($query) {
if (is_shop()) {
$query->set('posts_per_page', 24); // Zwiększ ilość produktów na stronę na 24
}
}
add_action('pre_get_posts', 'increase_products_per_page');

W powyższym przykładzie funkcja increase_products_per_page() jest dołączana do hooka pre_get_posts. Funkcja ta sprawdza, czy aktualna strona jest stroną sklepu (is_shop()), a następnie ustawia ilość produktów na stronie na 24 poprzez modyfikację parametru posts_per_page w obiekcie zapytania.

Możesz dostosować wartość 24 na potrzeby własne, zależnie od preferowanej ilości produktów na stronie. Po zastosowaniu tej funkcji, strona sklepu WooCommerce będzie wyświetlać większą liczbę produktów na stronie.

Funkcja która zwiększa liczbę powiązanych produktów (related products) wyświetlanych na stronie produktu w WooCommerce:

function increase_related_products($args) {
$args['posts_per_page'] = 6; // Zwiększ liczbę powiązanych produktów na 6
return $args;
}
add_filter('woocommerce_output_related_products_args', 'increase_related_products');

W tym przypadku funkcja increase_related_products() jest dołączana do filtra woocommerce_output_related_products_args. Funkcja ta modyfikuje parametr posts_per_page w argumencie zapytania dotyczącego powiązanych produktów, zwiększając go na 6.

Możesz dostosować wartość 6 do własnych preferencji, aby określić, ile produktów powiązanych ma być wyświetlanych na stronie produktu.

Funkcja dodająca obsługę plików SVG

Aby dodać obsługę plików SVG przez funkcję w WordPress, musisz zarejestrować format pliku SVG jako dozwolony typ pliku załącznika. Możesz to zrobić za pomocą funkcji wp_get_mime_types() i upload_mimes.

function add_svg_support( $mimes ) {
$mimes['svg'] = 'image/svg+xml';
$mimes['svgz'] = 'image/svg+xml';
return $mimes;
}
add_filter( 'upload_mimes', 'add_svg_support' );

W powyższym kodzie funkcja add_svg_support() jest dołączana do filtra upload_mimes. Funkcja ta dodaje dwa nowe typy MIME dla rozszerzeń plików SVG i SVGZ, umożliwiając przesyłanie i obsługę plików SVG w mediach WordPress.

Po dodaniu tego kodu do pliku functions.php, pliki SVG będą obsługiwane tak samo jak inne pliki multimedialne w WordPress. Będziesz mógł je przesyłać, używać jako obrazki i wykorzystywać w swoim kodzie.

Podsumowując

Functions.php jest plikiem w WordPress, który umożliwia dodawanie niestandardowego kodu PHP oraz dostosowywanie i rozszerzanie funkcjonalności strony. Można w nim definiować własne funkcje, dodawać akcje, filtry, obsługiwać zdarzenia, dołączać skrypty i style. Plik functions.php jest ładowany wraz z motywem WordPress i wykonuje się na różnych etapach przetwarzania strony. Jest jednak ważne pamiętać, że podczas aktualizacji motywu functions.php zostanie nadpisany, dlatego zaleca się zrobienie kopii zapasowej dodanych do niego funkcji. Istnieją również inne przydatne funkcje dostępne w functions.php, takie jak manipulowanie wyglądem strony, określanie lokalizacji plików czy dodawanie niestandardowych shortcode’ów. Przy pisaniu kodu w functions.php zaleca się stosowanie najlepszych praktyk programistycznych oraz testowanie go na środowisku testowym przed zastosowaniem na stronie produkcyjnej.