Jak zbudować własną wtyczkę na WordPress?

Jak zbudować własną wtyczkę na WordPress?

Wtyczki (z angielskiego: plugin – wykorzystywane zamiennie) do WordPressa oferują użytkownikowi rozbudowę podstawowych funkcjonalności tego systemu CMS (z angielskiego: content managment system – system zarządzania treścią), bez ingerowania w core systemu (z angielskiego: rdzeń). Wszystko po to, by dodane funkcjonalności nie znikały w ramach aktualizacji WordPressa, która wykonywana jest poprzez nadpisywanie plików.

Zgodnie z oficjalnymi informacjami twórców, każda funkcjonalność, jaką chcesz dodać do tego CMS, powinna być dodana za pomocą pluginów. Skomplikowanie i ilość funkcjonalności wtyczki może być taka, jaką uznasz za potrzebną.

Jak nazwać pliki mojej wtyczki na WordPress?

By zacząć tworzyć swój własny plugin, musisz wymyślić dla niego oryginalną nazwę (jeśli planujesz publikację w repozytorium WordPressa). Gdy już wymyślisz nazwę, przejdź do folderu z instancją WordPressa, a następnie do /wp-content/plugins/ . Znajdziesz tam foldery zainstalowanych obecnie wtyczek.

Utwórz w nim folder dla Twojej wtyczki np.: „pierwszyplugin”, a wewnątrz tego folderu plik: pierwszyplugin.php”.

Pamiętaj, by nazwa pliku głównego wtyczki i nazwa folderu były identyczne, jak na przykładzie powyżej.

Tak więc dla tego przykładu ścieżka do głównego pliku będzie wyglądać następująco: /wp-content/plugins/pierwszyplugin/pierwszyplugin.php

Nazwa pluginu, opis i autor – nagłówek wtyczki

Do zbudowania i uruchomienia swojej pierwszej, prostej wtyczki wystarczy, że wykorzystasz nagłówek z niezbędnymi komentarzami oraz kilka niezbędnych hooków. Zacznijmy od sekcji nagłówka. Minimum, jakie powinien zawierać to: nazwa wtyczki w takiej formie:

/**
 * Plugin Name: Pierwszy Plugin
 */

Jednak wersja komentarza dla wtyczek, które są publikowane w repozytorium WordPress’a jest znacznie bardziej rozbudowana i wygląda tak:

/**
 * Nazwa wtyczki
 *
 * @package         Nazwa paczki wtyczki
 * @author          Autor
 * @copyright       Dane o autorze lub firmie, która opracowała kod
 * @license         Licencja np: GPL-2.0-or-later
 *
 * @wordpress-plugin
 * Plugin Name:      Nazwa wtyczki wyświetlana na liście wtyczek
 * Plugin URI:       Link do informacji o wtyczce np: https://twojawtyczka.pl/informacje
 * Description:      Opis wtyczki wyświetlany na liście wtyczek
 * Version:          Wersja wtyczki np: 1.0.0
 * Requires at least: 5.5
 * Requires PHP:      7.4
 * Author:          Dane autora
 * Author URI:      Strona autora np: https://mojastrona.pl
 * Text Domain:     Slug Twojej wtyczki np: moja-wtyczka
 * License:         Licencja np: GPL v2 or later
 * License URI:     Adres URI licencji np: http://www.gnu.org/licenses/gpl-2.0.txt
 * Update URI:      Adres URI z aktualizacjami wtyczki np: https://twojawtyczka.pl/aktualizacje
 */

Budowa wtyczki i wymagane hooki

Wtyczka z samymi informacjami o niej i autorze już może wyświetlać się na liście wtyczek w Twoim WordPressie. Lecz by ją włączyć, plik wtyczki powinien zawierać funkcję, przypisaną do activation hook. Natomiast do wyłączenia powinien zawierać funkcję, przypisaną do deactivation hook.

Aktywacja wtyczki – Activation Hook

Często w ramach aktywacji wykonywane jest kilka funkcji np.: rejestracja nowego typu posta, utworzenie tabeli lub dodania nowych wartości do wp-options, zobacz jak wygląda przykładowa funkcja aktywacyjna.

function pierwszyplugin-aktywacja() {
//kod, który powinien być wykonany, wraz z włączeniem wtyczki np: utworzenie tabeli, dodanie do niej wartości, dodanie akcji do innych hooków np: wp-header lub wp-footer.
}
// aktywacja wtyczki wywoła funkcję "pierwszyplugin-aktywacja"
register_activation_hook( __FILE__, 'pierwszyplugin-aktywacja' );

Dezaktywacja wtyczki – Deactivation Hook

By wyłączyć wtyczkę, należy utworzyć funkcję, która odwróci jej wszystkie działania, które zostały wykonane w momencie jej włączenia na przykład: wyłączyć utworzone permalinki, usunąć zapisany cache, zresetować dodane przekierowania lub usunąć inne dodawane do bazy dane.

function pierwszyplugin-dezaktywacja() {
//kod, który powinien być wykonany, wraz z wyłączeniem wtyczki
}
// dezaktywacja wtyczki wywoła funkcję "pierwszyplugin-dezaktywacja"
register_activation_hook( __FILE__, 'pierwszyplugin-dezaktywacja' );

Usuwanie wtyczki

Na wstępie należy rozróżnić proces usuwania od dezaktywacji. W procesie dezaktywacji usuwamy dane, resetujemy dodane działania, natomiast w przypadku usuwania pluginu musimy usunąć wszelkie dodane tabele i usunąć dane z tabeli options. Pożądany efekt możemy uzyskać poprzez Uninstall Hook lub dodanie pliku uninstall.php.

Usuwanie za pomocą kotwicy – Uninstall hook

Tak jak w przypadku aktywacji i dezaktywacji wystarczy napisać funkcję, która zostanie powiązana z Uninstall hook.

//usuwanie wtyczki
function pierwszyplugin-uninstall(){
//usuwanie tabeli i danych z tabeli options
}
register_uninstall_hook(__FILE__, 'pierwszyplugin-uninstall');

Oddzielny plik usuwania – uninstall.php

Drugi sposób to utworzenie nowego pliku w folderze opracowanej wtyczki z nazwą „uninstall.php”. Taki plik powinien zostać zabezpieczony przed bezpośrednim wywołaniem oraz zawierać funkcje, które wyczyszczą bazę danych z tabel i danych dodanych przez plugin.

//zabezpieczenie przed bezpośrednim wywołaniem pliku, bez kliknięcia w "usuń"
if (!defined('WP_UNINSTALL_PLUGIN')) {
    die;
}
//funkcje czyszczące bazę z dodanych tabel i danych

Podsumowanie

Teraz już wiesz, jak powinna wyglądać struktura prostej wtyczki do WordPressa. By zadziałała na Twojej instancji, wystarczy, że: utworzysz folder i plik o tych samych nazwach (plik z rozszerzeniem .php), a następnie plik będzie zawierał tylko informację o nazwie wtyczki.

Następnie w samym pliku utworzysz puste funkcje i podłączysz je pod activation, deactivation i uninstall hook.

I voila! Twoja wtyczka już może być włączana i wyłączana. Pamiętaj, że jej usunięcie spowoduje zniknięcie opracowanych przez Ciebie plików. Także pamiętaj o kopiach swoich plików. Po kolejne materiały na temat tworzenia wtyczek na WordPress zapraszam Cię na blog TenOdWordPressa.pl.

Przykład własnej wtyczki na wordpressie - Daniel Jeziorski

Źródło:

Oficjalny poradnik tworzenia wtyczek WordPress Developer – https://developer.wordpress.org/plugins/

8 marca, 2022 | Wordpress Dev