Dziś miałem opublikować wpis pokazujący jak w przypadku sklepu internetowego opartego o WooCommerce (WordPress) dodać załącznik do wiadomości e-mail z potwierdzeniem zamówienia. Powód nie jest przykładowy – 25 grudnia w życie wejdą nowe przepisy które przynosi Ustawa o prawach konsumenta, a w raz z nimi nowe obowiązki informacyjne…

Po chwili namysłu stwierdziłem, że zanim wspomniany wpis trafi do publikacji muszę nadrobić jeszcze jeden temat – jak dodać do strony opartej o WordPressa własny kod, i o tym właśnie dziś będzie.

Własny kod w WordPressie

Przedstawię 2 chyba najpopularniejsze sposoby na dodanie własnego kodu do strony opartej o system CMS WordPress.

  • Własny kod w pliku functions.php
  • Własna wtyczka

Oczywiście w obu przypadkach kod to PHP, choć jak w przypadku PHP można dołączyć i inne języki/elementy (np. HTML, JavaScript, CSS).

Plik functions.php

Najprostszy sposób to dodanie własnego kodu do pliku functions.php, który znajduje się w katalogu naszego szablonu – a jak go tam nie ma, to wystarczy utworzyć pusty plik o takiej nazwie.

Od razu zakładam, że jak każdy rozważny użytkownik WordPressa do wszelkich modyfikacji używasz szablonu potomnego (child themes), jak nie – to czas najwyższy zacząć :-)

W przypadku gdy nie korzystacie z szablonów potomnych, może to być główny plik functions.php Waszego szablonu, ale:

  • Przy edycji uważajcie by nie skasować nic innego
  • Po aktualizacji szablonu jest duża szansa, że plik zostanie nadpisany i stracicie wszystkie modyfikacje

Struktura (czystego pliku, z szablonu potomnego) wygląda tak:


<?php

/* Swój kod wprowadź poniżej: */

[KOD]

/* Swój kod wprowadź powyżej */

?>

 

Załóżmy, że chcemy dodać do naszej strony taki kod:


echo "Jakiś tekst";

 

W takim przypadku cały plik functions.php będzie wyglądał tak:


<?php

/* Swój kod wprowadź poniżej: */

echo "Jakiś tekst";

/* Swój kod wprowadź powyżej */

?>

Przykład może nie jest jakiś specjalnie wartościowy – spowoduje wyświetlenie tekstu „Jakiś tekst” na górze strony, ale jego celem jest pokazanie Wam, jak można do tego pliku dodać inny, już bardziej rozbudowany kod.

Własna wtyczka do WordPressa

Kolejna możliwość, to przygotowanie własnej wtyczki – na potrzeby tego poradnika pokaże najprostszy sposób na przygotowanie wtyczki i dodanie ich do swojego WordPressa –  nie będę się skupiał na dodawaniu wtyczki do publicznego repozytorium WordPress.org, na to może przyjdzie czas niebawem… :-)

Zasada jest podobna jak w przypadku pliku functions.php, z tym, że tworzymy nowy plik o wybranej przez nas nazwie, np.:

nasza_nazwa_nazwa_wtyczki.php

Struktura pliku wtyczki wygląda tak:


<?php
/*
 * Plugin Name: Moja pierwsza wtyczka
 * Plugin URI: //webinsider.pl
 * Description: Przykładowa wtyczka do WordPressa
 * Author: Patryk
 * Author URI: //webinsider.pl
 * Version: 1.0.1
 * License: GPLv2 or later
 * License URI: http://www.gnu.org/licenses/gpl-2.0.html
*/

if (!defined('ABSPATH')) exit;

/* Swój kod wprowadź poniżej: */

[KOD]

/* Swój kod wprowadź powyżej */

?>

 

Załóżmy, że i tym razem chcemy dodać do naszej strony taki kod:


echo "Jakiś tekst";

 

W takim przypadku cały plik wtyczki będzie wyglądał tak:


<?php
/*
 * Plugin Name: Moja pierwsza wtyczka
 * Plugin URI: //webinsider.pl
 * Description: Przykładowa wtyczka do WordPressa
 * Author: Patryk
 * Author URI: //webinsider.pl
 * Version: 1.0.1
 * License: GPLv2 or later
 * License URI: http://www.gnu.org/licenses/gpl-2.0.html
*/

if (!defined('ABSPATH')) exit;

/* Swój kod wprowadź poniżej: */

echo "Jakiś tekst";

/* Swój kod wprowadź powyżej */

?>

 

Tak zapisany plik kopiujemy do katalogu:

/wp-content/plugins

I już możemy wtyczkę aktywować w panelu WordPressa:

wordpress_panel-sterowania_przykladowa-wtyczka01

Oczywiście – jak wcześniej – jest to najprostszy przykład który ma pokazać tylko mechanizm, a kod użyty kod zależy od Waszych potrzeb.

Plik wtyczki można również umieścić w katalogu, np.:

nasza_nazwa_nazwa_wtyczki/nasza_nazwa_nazwa_wtyczki.php

Przydatne, zwłaszcza gdy oprócz kodu PHP planujemy również wykorzystać inne elementy, np. pliki graficzne.

WordPress hooks, czyli akcje i filtry

To co pozwala w pełni wykorzystać możliwości jakie daje możliwość umieszczenia i wykonania własnego kodu w ramach WordPressa to tzw. haki w WordPressie. Nawet zaryzykuje stwierdzenie, że w dużej mierze to właśnie ten element miał duże znaczenie w sukcesie jaki odniosła ta platforma. To właśnie dzięki hakom możemy zdecydować co, gdzie i kiedy ma się wykonać.

Ogólnie wyróżniamy akcje i filtry, które na pierwszy rzut okaz mogą wydawać się podobne, a wręcz identyczne, ale ich działanie (cel) jest inny:

  • Akcje – wykonują konkretne operacje w konkretnym momencie
  • Filtry – wykonują operacje na danych (np. treści)

Opis wszystkich akcji i filtrów najdziecie na stronie WordPress Codex, a konkretnie:

Jak korzystać

Z haków (filtrów i akcji) w WordPressie odwołujemy się za pomocą takich kodów:


add_action ('nazwa_haka','nazwa-funkcji',$priorytet,$ilość_argumentów);
add_filter ('nazwa_haka','nazwa-funkcji',$priorytet,$ilość_argumentów);

 

Kilka (prostych) przykładów

Jeden z prostszych, a zarazem przydatnych kodów jest coś takiego:


add_filter('widget_text','do_shortcode');

 

Wydaje się, że niby nic takiego tu nie ma, a właśnie dodaliśmy obsługę shortcode do widgetów :-)

Inny przykład, to wykonanie konkretnej (zdefiniowanej) funkcji w panelu administracyjnym WordPressa:


add_action('admin_head','nazwa_funkcji');

 

A całość – razem z funkcją – będzie wyglądała np. tak:


function nazwa_funkcji() {
    echo "Jakiś tekst";
}
add_action('admin_head','nazwa_funkcji');

 

Oczywiście to tylko zarys wykorzystania haków (API) w WordPressie, może kiedyś jeszcze powrócę do tematu – ale raczej będzie to w formie konkretnych przykładów, rozwiązujących konkretne problemy, niż „wykłady z teorii haków” ;-)

Zgłoś błąd na stronie

WebInsider poleca księgowość wFirma
WebInsider korzysta z VPSa w HitMe.pl
WebInsider poleca VPSy DigitalOcean
WebInsider poleca serwis Vindicat
Napisz komentarz
wipl_napisz-komentarz_01Jeśli informacje zawarte na tej stronie okazały się pomocne, możesz nam podziękować zostawiając poniżej swój komentarz.

W tej formie możesz również zadać dodatkowe pytania dotyczące wpisu, na które - w miarę możliwości - spróbujemy Ci odpowiedzieć.
Linki partnerskie
Niektóre z linków na tej stronie to tzw. "linki partnerskie", co oznacza, że jeśli klikniesz na link i dokonasz wymaganej akcji (np. zakup/rejestracja) możemy otrzymać za to prowizję. Pamiętaj, że polecamy tylko te produkty i usługi, z których sami korzystamy, i uważamy, że są tego na prawdę warte... :-)
Znaki towarowe i nazwy marek
W niektórych wpisach (oraz innych miejscach na stronie) mogą być przedstawione/użyte znaki towarowe i/lub nazwy marek, które stanowią własność intelektualną tych podmiotów, a zostały użyte wyłącznie w celach informacyjnych.