WORDPRESS WŁASNE PLUGINY

Transkrypt

WORDPRESS WŁASNE PLUGINY
WORDPRESS
WŁASNE PLUGINY
Copyright © 2013 INSIGO Grzegorz Róg. Wszelkie prawa zastrzeżone.
INSIGO Grzegorz Róg
www.eduweb.pl
ISBN: 978-83-62083-49-7
Kurs składa się z dwóch elementów: książki oraz płyty. Dołączona płyta stanowi część składową książki i nie
może być przedmiotem odrębnej transakcji.
WORDPRESS - WŁASNE PLUGINY 3
autor
MACIEJ ŻUKIEWICZ
Maciej Żukiewicz zdobywa wykształcenie informatyczne na
kierunku nowoczesnych technologii internetowych. Od wielu lat
zajmuje się projektowaniem oraz wdrażaniem dynamicznych stron
WWW a także zaawansowanych aplikacji internetowych. Kwestie
bezpieczeństwa programów również nie są mu obce. Specjalizuje
się w programowaniu w PHP z wykorzystaniem relacyjnych baz
danych, posiada także doświadczenie w pracy z językami takimi jak
JAVA, ActionScript i oczywiście JavaScript. Teraz proszę posłuchaj,
co Maciej ma Ci do powiedzenia w zakresie tworzenia dodatków
do WordPress! Gwarantuję, że ta świetna zabawa przyniesie Ci
mnóstwo satysfakcji!
www.eduweb.pl
Maciej Żukiewicz
WORDPRESS - WŁASNE PLUGINY 4
Czym jest WordPress?
WordPress to popularny system zarządzania treścią (CMS - Content Management System),
który umożliwia tworzenie i utrzymywanie własnych stron WWW. WordPress został pierwotnie
zaprojektowany do tworzenia systemów blogowych, jednak szybko okazało się, że jest to na
tyle elastyczny system, że można z jego pomocą tworzyć praktycznie dowolne, nawet bardzo
rozbudowane serwisy. Ze względu na łatwą obsługę, prosty i czytelny kod jak również częste
aktualizacje oraz dobre indeksowanie w wyszukiwarkach, WordPress stał się niezwykle popularny
i obecnie pracują na nim tysiące witryn.
Bieżąca wersja WordPress
System CMS WordPress jest na bieżąco uaktualniany przez jego twórców. Z tego powodu wersja,
na której pracujemy w kursie nie jest to wersja najnowsza. Jednak nie przejmuj się - po pierwsze,
WordPress to dojrzały system, którego twórcy nie wywracają wszystkiego do góry nogami co
którąś wersję.
Wszystkie elementy interfejsu zostają i zostaną jeszcze na długo niezmienione, natomiast do
nowych wersji są po prostu dodawane nowe rzeczy, które na ogół są na tyle marginalne że i tak
nie byłoby zbyt wiele miejsca na omówienie ich w kursie. To właśnie dlatego zapewniamy do
www.eduweb.pl
Maciej Żukiewicz
WORDPRESS - WŁASNE PLUGINY 5
naszych kursów osobne aktualizacje, omawiające tylko te nowe, ciekawe funkcje. Aktualizacje
zazwyczaj możesz znaleźć na http://www.eduweb.pl/warsztaty
Front-end i Back-end
Strukturę WordPress można podzielić na core systemu, na który składają się pliki wczytywane
zawsze z instalacji WordPress’a, chociażby index.php. Funkcjonalność core WordPress’a mogą
ewentualnie modyfikować zainstalowane Pluginy. Druga warstwa to szablon, który jest aktywny i
jego pliki znajdują się w folderze themes w katalogu wp-content. Te pliki również mogą dodawać
lub nadpisywać funkcjonalności WordPress. To, co widzi użytkownik jest natomiast warstwą frontend, determinowaną przez pliki html oraz css zainstalowanego Motywu.
www.eduweb.pl
Maciej Żukiewicz
WORDPRESS - WŁASNE PLUGINY 6
Debuggowanie w WordPress
Przed rozpoczęciem pracy nad rozszerzaniem możliwości WordPressa, należy w pliku wp-config.
php poprawnie ustawić stałe ułatwiające debuggowanie. Dzięki temu, w przypadku problemów z
działaniem skryptu PHP, mamy dostęp do wszystkich informacji o błędach.
Stała
Opis
WP_DEBUG
Włącza lub wyłącza debuggowanie w WordPress
WP_DEBUG_LOG
Włącza lub wyłącza logowanie błędów do pliku (/wp-content/
debug.log)
UWAGA: Aby aktywować logowanie do pliku stała WP_DEBUG
musi być ustawiona na TRUE!
WP_DEBUG_DISPLAY
Włącza lub wyłącza logowanie błędów na ekran
UWAGA: Aby aktywować logowanie do pliku stała WP_DEBUG
musi być ustawiona na TRUE!
SCRIPT_DEBUG
Włącza lub wyłącza kompresowanie skryptów javascript oraz
kodu CSS.
UWAGA: Aby aktywować logowanie do pliku stała WP_DEBUG
musi być ustawiona na TRUE!
SAVEQUERIES
Włącza lub wyłącza podgląd do wszystkich zapytań wysyłanych
do bazy danych (dostępnych w obiekcie WPDB).
UWAGA: Aby aktywować logowanie do pliku stała WP_DEBUG
musi być ustawiona na TRUE!
www.eduweb.pl
Maciej Żukiewicz
WORDPRESS - WŁASNE PLUGINY 7
Ustawienie stałych debuggujących dla odpowiednich środowisk:
Środowisko
Ustawienie
Development
define(‚WP_DEBUG’, true);
define(‚WP_DEBUG_LOG’, true);
define(‚WP_DEBUG_DISPLAY’, true);
define(‚SCRIPT_DEBUG’, true);
define(‚SAVEQUERIES’, true);
Test
define(‚WP_DEBUG’, true);
define(‚WP_DEBUG_LOG’, true);
define(‚WP_DEBUG_DISPLAY’, false);
define(‚SCRIPT_DEBUG’, false);
define(‚SAVEQUERIES’, false);
Produkcja
define(‚WP_DEBUG’, false);
define(‚WP_DEBUG_LOG’, false);
define(‚WP_DEBUG_DISPLAY’, false);
define(‚SCRIPT_DEBUG’, false);
define(‚SAVEQUERIES’, false);
WordPress standardowo nie jest wyposażony w funkcje logowania zapytań SQL do pliku. Przez
to debuggowanie zapytań wysyłanych do bazy może być utrudnione. Aby poradzić sobie z tym
problemem, należy skorzystać z dostępnych w repozytorium wtyczek lub napisać własny skrypt
wykonujący to zadanie.
www.eduweb.pl
Maciej Żukiewicz
WORDPRESS - WŁASNE PLUGINY 8
Kod przykładowego skryptu logującego zapytania do bazy danych:
Bardzo przydatne staje się również sprawdzanie zawartości zmiennych (obiektów/tablic) bądź stałych „wysyłając” ich zawartość do pliku. Dzięki temu nie musimy korzystać z bardzo niewygodnej
techniki wyświetlania zawartości zmiennych na ekran, co czasem nawet nie jest możliwe podczas
pracy z AJAX.
www.eduweb.pl
Maciej Żukiewicz
WORDPRESS - WŁASNE PLUGINY 9
Kod przykładowej funkcji logującej zmienne bądź stałe do dziennika:
W trakcie pracy z rozszerzeniami WordPressa na pewno będziesz potrzebował jeszcze innych,
własnych, bardziej wyspecjalizowanych funkcji debuggujących. Pamietaj, aby podczas ich pisania
uwzględniać stałe debuggujące WordPressa, podobnie jak to ma miejsce w przykładowych kodach
powyżej.
Struktura Motywu WordPress
Poniżej prezentujemy podstawową strukturę szablonu WordPress, do którego ładowane są
odpowiednie pliki php. Nie przedstawiliśmy wszystkich plików PHP, a jedynie te najbardziej
popularne, które wpływają na generowanie treści. W przypadku dokonywania zmian w HTML,
należy zajrzeć właśnie do tych, odpowiednich plików PHP.
Struktura plików Motywu w WordPress
• header.php – Sekcja z nagłówkiem
www.eduweb.pl
Maciej Żukiewicz
WORDPRESS - WŁASNE PLUGINY 10
• index.php – Główna strona
• sidebar.php - Sidebar
• single.php – Szablon Wpisu
• page.php – Szablon Strony
• comments.php – Szablon Komentarza
• search.php - Wyszukiwarka
• searchform.php – Formularz wyszukiwania
• archive.php – Strona archiwum
• functions.php – Funkcje Szablonu (PHP)
• 404.php – Strona błędu 404
• style.css – Plik stylów
Struktura plików WordPress
Na tym diagramie znajdziesz informacje o tym, który plik (kolumna po prawej) zostaje załadowany
w odpowiednim widoku (kolumna po lewej). Zwróć uwagę na to, że w momencie, gdy dany plik
nie istnieje w Motywie, jest ładowany kolejny, a hierarchia kończy się na pliku index.html, który
jest ładowany zawsze wtedy jeśli żadna strona w strukturze poziomej nie istnieje.
www.eduweb.pl
Maciej Żukiewicz
WORDPRESS - WŁASNE PLUGINY 11
Rejestrowanie strony w Panelu WordPress
Aby zarejestrować stronę z ustawieniami w Kokpicie, należy skorzystać z kodu deklaracji i
następujących kroków:
•
•
•
•
•
•
Rejestracja ustawień strony – register_settings
Action Hook – add_action
Formularz linkujący do options.php
Rejestracja pól w formularzu ustawień – settings_fields
Przekazanie opcji z formularza z pomocą get_option
Powiązanie opcji ze stroną .php
Pętla WordPress
Pętla (The Loop) pozwala na wyświetlenie dowolnych treści, wyciągnięcie postów, stron, linków i
innych elementów Twojej strony. Ważne jest aby tego typu wywołania tworzyć właśnie w obrębie
pętli, której podstawowa struktura wygląda następująco:
<?php if(have_posts());?>
<?php while(have_posts()); the_post();?>
// Kod do wywołania w pętli
<?php else;?>
<?php endif;?>
Ważne funkcje wewnątrz pętli to:
•
•
•
•
•
•
•
•
the_permalink() the_ID() the_author() the_category() the_title
the_excerpt
the_content
the_date
www.eduweb.pl
URL POSTA
ID POSTA
NAZWA AUTORA
KATEGORIA POSTA
TYTUŁ POSTA
SKRÓT POSTA
CAŁA ZAWARTOŚĆ POSTA
DATA POSTA
Maciej Żukiewicz
WORDPRESS - WŁASNE PLUGINY 12
Tagi wyświetlania treści w Motywie:
• <?php the_title() ?> - pokazuje tytuł Wpisu/Strony
• <?php the_content() ?> - wyświetla zawartość Wpisu/Strony
• <?php the_excerpt() ?> - pokazuje skrót Wpisu - Excerpt
• <?php the_time() ?> - pokazuje czas dodania Wpisu/Strony
• <?php the_date() ?> - wyświetla datę dodania Wpisu/Strony
• <?php the_permalink() ?> - pokazuje URL permalinku
• <?php the_category() ?> - wyświetla kategorię Wpisu
• <?php the_author(); ?> - pokazuje autora wpisu
• <?php the_ID(); ?> - pokazuje identyfikator Wpisu
• <?php wp_list_pages(); ?> - pokazuje wszystkie strony
• <?php wp_tag_cloud(); ?> - wyświetla chmurkę tagów
• <?php wp_list_cats(); ?> - listuje kategorie
• <?php get_calendar(); ?> - pokazuje kalendarz
• <?php wp_get_archives() ?> - lista archiwów z bazy danych
• <?php posts_nav_link(); ?> - wyświetla linki nawigacyjne do poprzedniej / następnej strony
• <?php next_post_link() ?> - wyświetla link do najnowszych postów
• <?php previous_post_link() ?> - link do poprzednich postów
• <?php edit_post_link(__(‘Edit Post’)); ?> - link edycji
• <?php wp_register();?> - link rejestracji
• <?php wp_loginout();?> - link logowania / wylogowania
• <?php wp_meta();?> - metadane dla admina
• <?php get_links_list(); ?> - wyświetla blogroll
• <?php comments_popup_link(); ?> - linkuje do komentarzy
Informacje o stronie z Bloginfo
Z pomocą funkcji bloginfo otrzymamy wiele przydatnych, dynamicznych danych o naszej
działającej stronie w WordPress. Wykorzystanie bloginfo w kodzie wygląda następująco:
<?php bloginfo(‘template_url’); ?>
•
•
•
•
•
•
•
<?php bloginfo(‘name’); ?>
<?php bloginfo(‘charset’); ?> <?php bloginfo(‘description’); ?> <?php bloginfo(‘url’); ?> <?php bloginfo(‘rss2_url’); ?> <?php bloginfo(‘template_url’); ?> <?php bloginfo(‘pingback_url’); ?> www.eduweb.pl
TYTUŁ BLOGA
KODOWANIE
META DESCRIPTION
ADRES BLOGA
URL DO RSS
ŚCIEŻKA SZABLONU
URL PINGBACK’ÓW
Maciej Żukiewicz
WORDPRESS - WŁASNE PLUGINY 13
•
•
•
•
<?php bloginfo(‘stylesheet_url’); ?> <?php bloginfo(‘wpurl’); ?> <?php bloginfo(‘version’); ?> <?php bloginfo(‘html_type’); ?> URL PLIKU CSS
URL INSTALACJI WP
WERSJA WP
WERSJA HTML STRONY
Co jeszcze sprawdzimy z Bloginfo? Przykładowo, na której stronie się znajdujemy:
•
•
•
•
•
•
is_home() is_front_page() is_single() is_sticky() is_page() is_category() STRONA GŁÓWNA BLOGA
STRONA GŁÓWNA
WIDOK POJEDYNCZEGO POSTA
PRZYKLEJONY POST
WIDOK STRONY
WIDOK KATEGORII
Definiowanie własnych pól
Własne pola definiujemy z pomocą Kokpitu przy dodawaniu postów i stron, następnie funkcja
get_post_meta przyjmuje wartości:
$post_id – identyfikator posta
$key – definiuje klucz własnego pola
$single – zwraca tablicę albo string
<?php get_post_meta($post_id, ‘$key’, $single); ?>
W praktyce:
<?php echo get_post_meta($post->ID, ’nazwa-pola’, true); ?>
Rozwiązywanie problemów
Jedną z genialnych cech WordPress jest fakt, że praktycznie wszystkie treści Twojej strony są
przechowywane w bazie danych MySQL. Ponieważ baza jest zwykle backupowana oraz odporna
na awarie, istnieje bardzo małe prawdopodobieństwo utraty jakichkolwiek danych. Zalecamy
również tworzenie backupów bazy we własnym zakresie na przykład z pomocą pluginów do
WordPress omawianych w kursach eduweb.pl. Poza bazą, drugim kluczowym składnikiem
Twojej strony są pliki wgrane na serwer FTP. W razie awarii, proponujemy w pierwszej kolejności
sprawdzić właśnie strukturę plików. Jeśli zainstalowałeś dodatek, który spowodował, że strona
nie wyświetla się poprawnie - np. generuje białe tło w przeglądarce, nie panikuj! Po prostu wejdź
do katalogu z dodatkami i usuń folder w którym znajduje się wadliwy plugin. Może i brzmi to
www.eduweb.pl
Maciej Żukiewicz
WORDPRESS - WŁASNE PLUGINY 14
brutalnie, ale tak właśnie trzeba zrobić. Baza WordPress jest praktycznie oderwana od plików i
możesz bez problemu nawet wykasować wszystko z FTP, a następnie wgrać świeżą, nową wersję
WordPress. Pamiętaj tylko o tym, że stworzone przez Ciebie motywy, czy nadpisane pliki .php lub
.css powinny być wcześniej zapisane w bezpiecznym miejscu jako backup!
Taksonomie
Treści w WordPress są uporządkowane w tak zwane taksonomie. Podstawowe taksonomie to
kategorie oraz tagi. Co do zasady posty powinny przynależeć do jednej lub więcej kategorii, choć
zalecana jest jedna. Natomiast do postów możemy przyporządkować szereg tagów. Na przykład
przepis na tiramisu może należeć do kategorii deser, natomiast przypisane do niego tagi to: ciasto,
biszkopt, czekolada, kawa etc. Charakterystyczną cechą taksonomii jest możliwość filtrowania
po nich treści, czyli wyświetlania tak zwanych archiwów. Polega to na możliwości wpisania np. w
adresie:
http://www.twojadomena.pl/nazwakategorii
WordPress dba o to, aby automatycznie wygenerować dla takiego linku listę postów, które do tej
kategorii zostały przyporządkowane.
Własne taksonomie
Taksonomie hierarchiczne i niehierarchiczne, takie jak kategorie i tagi można samodzielnie
deklarować. Najlepiej zrobić to w osobnym pliku ponieważ ta deklaracja może być wówczas
wykorzystana w różnych motywach. Deklaracja przykładowej taksonomii wygląda tak:
function stworz_taksonomie() {
register_taxonomy(‘zwierzeta’, ‘post’, array( ‘hierarchical’ => false, ‘Zwierzęta’, ‘query_var’ => true, ‘rewrite’ => true));
register_taxonomy(‘Rośliny’, ‘post’, array( ‘hierarchical’ => false, query_var’ => true, ‘rewrite’ => true));
}
add_action(‘init’, ‘create_my_taxonomies’, 0);
www.eduweb.pl
‘label’ =>
‘label’ => ‘Rośliny’,
Maciej Żukiewicz
WORDPRESS - WŁASNE PLUGINY 15
Korzystanie z płyty dvd dołączonej
do książki
Na płycie DVD znajdziesz pełne szkolenie z zakresu WordPress, które jest dodatkiem do
książki.
Prosimy o pobranie licencji, która jednocześnie jest dowodem zakupu oraz lagalności
kursu. Certyfikat jest dostępny na stronie http://www.eduweb.pl po zalogowaniu do
Strefy Klienta.
instrukcja obsługi płyty dvd
Po włożeniu płyty DVD do napędu proszę wybrać opcję Eksploruj (wyświetlić zawartość
płyty), a następnie uruchomić plik index.html W razie problemów z odtwarzaniem
filmów należy: 1/ Pobrać najnowszy Flash Player® (http://get.adobe.com/pl/flashplayer/) 2/ Zainstalować środowisko Java® (http://www.java.com/pl/download/) 3/ Wyczyścić pliki tymczasowe i uruchomić ponownie przeglądarkę, a jeśli to nie
zadziała, w miarę możliwości spróbować uruchomić plik pod inną przeglądarką (np.
Firefox®) 4/ W ostateczności zmienić rozszerzenie pliku .flv w folderze video na .mov i sprawdzić,
czy film będzie odtwarzał się w QuickTime®
Kurs jest w sposób elektroniczny powiązany z właścicielem licencji. Kurs przeznaczony jest do użytku osoby kupującej. Z wyjątkiem sytuacji dopuszczalnych przez prawo,
jakiekolwiek powielanie, montaż, wypożyczanie czy inne rozpowszechnianie płyty
lub jej zawartości czy fragmentów zawartości jest bezwzględnie zabronione.
Książka wraz z płytą DVD nie mogą być przedmiotem odsprzedaży czy sprzedaży
handlowej bez uzyskania odpowiedniej licencji.
www.eduweb.pl
Maciej Żukiewicz

Podobne dokumenty