W ostatnim czasie potrzebowałem bardzo prostej wtyczki do WordPressa, która będzie dodawała informacje o Cookie na dole strony. Pomimo tego, że nie znam za bardzo kodu WordPressa postanowiłem napisać plugin. Tworzenie pierwszego plugina(wtyczki) do WordPressa rozpocząłem od studiowania dokumentacji.
Założenia są proste:
- Użytkownik może zmodyfikować treść informacji o cookies.
- Użytkownik może wybrać styl buttona
- Skrypt działa na podstawie JQuery
- Możliwa edycja parametrów skryptu w panelu administracyjnym
Po poznaniu dokumentacji tworzenia pluginów wordpressa zacząłem działać.
Struktura katalogów wtyczki
W katalogu wordpressa wp-content/plugins stworzyłem katalog o nazwie „wp-fancy-cookie-eu”, a w nim nastepujące pliki: wfce.css, wfce.js, wp-fancy-cookie-eu.php
Najważniejszym plikiem, jest wp-fancy-cookie-eu.php, w którym znajdzie się całość tego prostego plugina. Chociaż jestem zwolenikiem programowania obiektowego, stwierdziłem, że z uwagi na prostotę skryptu nie będe obciążał PHP niepotrzebnym kodem obiektowym.
<?php /* Plugin name: WP-Fancy-Cookie-Eu * Version: 1.0 * Description: Plugin adds information about using cookies due to EU Cookie policy * Author: Robert Podwika * Author URI: http://www.rpodwika.pl */ $wfce_version = 1.0;
Oto niezbędne informacje dla wordpressa, żeby wykrył wtyczkę. W komentarzu znajdziecie nazwę plugina, wersja, opis, autora oraz adres strony autora oraz zmienną przechowującą wersję wtyczki.
Następnie stwierdziłem, że nie będe tworzył osobnych tabel dla wtyczki, ale skorzystam z bardzo prostego mechanizmu opcji w wordpressie. Do tego by nie powtarzać kodu utworzyłem sobie tablice globalną(zabijcie mnie za to) z opcjami z których będę korzystał:
global $option_list; $option_list = array( 'wfce_policy_text' => 'Fill with your policy text.', 'wfce_policy_url' => get_site_url(), 'wfce_accept_policy_button_text' => 'Accept', 'wfce_css_code' => '', 'wfce_version' => $wfce_version );
Następnie stworzyłem funkcje, które zainstalują wtyczkę i odinstalują ją. zarejestrowałem je za pomocą specjalnych funkcji wordpressa o nazwie „register_activaction_hook”oraz „register_deactivation_hook”. Funkcje są proste w działaniu dodają kolejne lub usuwają(w przypadku odinstalowania) opcje wtyczki do specjalnej tabeli wordpressa przechowującej „opcje”.
/** * * Function handles installation of plugin */ function wfce_install(){ global $option_list; foreach($option_list as $option => $value){ add_option($option,$value); } } register_activation_hook(__FILE__, 'wfce_install'); /** * * Uninstall wfce plugin */ function wfce_uninstall(){ global $option_list; foreach($option_list as $option => $value){ delete_option($option,$value); } } register_deactivation_hook(__FILE__, 'wfce_uninstall');
Pierwszy blog, który tak dokładnie tłumaczy co zrobić (przynajmniej pierwszy, który znalazłam). Mam wrażenie, że będę częściej tu zaglądać;)
Zapraszam serdecznie 🙂
Mam jakiś dziwny problem bo edytor ląduję na samej górze strony ustawień a po kliknięciu „zaktualizuj” przekierowuje mnie na jakąś stronę z chyba wszystkimi wpisami z „options” no i nie zapisuje mi nic. Problem z kompatybilnością z nowym WordPressem 4.3?