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:

  1. Użytkownik może zmodyfikować treść informacji o cookies.
  2. Użytkownik może wybrać styl buttona
  3. Skrypt działa na podstawie JQuery
  4. 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');

Strony: 1 2 3