Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00415 007011 14246565 na godz. na dobę w sumie
Wtyczki do WordPressa. Programowanie dla profesjonalistów - książka
Wtyczki do WordPressa. Programowanie dla profesjonalistów - książka
Autor: , , Liczba stron: 520
Wydawca: Helion Język publikacji: polski
ISBN: 978-83-246-3564-1 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> webmasterstwo >> wordpress
Porównaj ceny (książka, ebook, audiobook).

Rozbuduj możliwości platformy WordPress za pomocą wtyczek!

WordPress to jeden z najpopularniejszych systemów zarządzania treścią. Jest fundamentem niezliczonej ilości blogów, portali i stron WWW. Jego największe atuty to łatwa instalacja, przyjemna konfiguracja i niewygórowane wymagania. Ale jak to się stało, że zdobył aż taką popularność? Jest coś jeszcze - rozbudowany system wtyczek zwiększających funkcjonalność, dzięki którym możliwości WordPressa są w zasadzie nieograniczone!

W trakcie czytania tej książki dowiesz się, jak tworzyć wtyczki i dostosowywać system WordPress do własnych potrzeb, choćby były najbardziej wymyślne. Na samym początku poczynisz przygotowania do stworzenia własnej wtyczki, a także dowiesz się, jak ją instalować i odinstalowywać oraz dokumentować jej kod. W kolejnych rozdziałach nauczysz się integrować wtyczkę z systemem WordPress - tworzyć widgety, modyfikować menu, obsługiwać pola użytkownika oraz formularze. Jeżeli chcesz, aby Twoja wtyczka zdobyła popularność na całym świecie, koniecznie zapoznaj się ze sposobami tworzenia wtyczek wielojęzycznych. To jednak nie wszystko! Książka porusza wiele innych istotnych kwestii, takich jak bezpieczeństwo wtyczek, przygotowanie strony administracyjnej dla wtyczki, obsługa API. Trzymasz w rękach kompendium wiedzy na temat wtyczek w systemie WordPress. Zacznij przygodę z nimi już dziś!

Dowiedz się, jak tworzyć własne wtyczki - przejdź na wyższy poziom używania WordPressa!



Prowadzisz bloga, serwis informacyjny, stronę firmową?
Dołącz do Programu Partnerskiego - Zostań wtyczką Helionu!

więcej>>
Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

Tytuł oryginału: Professional WordPress Plugin Development Tłumaczenie: Robert Górczyński ISBN: 978-83-246-3564-1 © 2011 by Wiley Publishing, Inc., Indianapolis, Indiana All Rights Reserved. Authorized translation from the English language edition published by John Wiley Sons Limited. Responsibility for the accuracy of the translation rests solely with Helion S. A. and is not the responsibility of John Wiley Sons Limited. No part of this book may be reproduced in any form without the written permission of the original copyright holder, John Wiley Sons Limited. Wiley, the Wiley logo, Wrox, the Wrox logo, Wrox Programmer to Programmer, and related trade dress are trademarks or registered trademarks of John Wiley Sons, Inc. and/or its affiliates, in the United States and other countries, and may not be used without written permission. WordPress is a registered trademark of Automattic, Inc. All other trademarks are the property of their respective owners. Wiley Publishing, Inc. is not associated with any product or vendor mentioned in the book. Translation copyright © 2012 by Wydawnictwo Helion. All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording or by any information storage retrieval system, without permission from the Publisher. Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną, fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje naruszenie praw autorskich niniejszej publikacji. Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli. Autor oraz Wydawnictwo HELION dołożyli wszelkich starań, by zawarte w tej książce informacje były kompletne i rzetelne. Nie biorą jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za związane z tym ewentualne naruszenie praw patentowych lub autorskich. Autor oraz Wydawnictwo HELION nie ponoszą również żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji zawartych w książce. Wydawnictwo HELION ul. Kościuszki 1c, 44-100 GLIWICE tel. 32 231 22 19, 32 230 98 63 e-mail: helion@helion.pl WWW: http://helion.pl (księgarnia internetowa, katalog książek) Pliki z przykładami omawianymi w książce można znaleźć pod adresem: ftp://ftp.helion.pl/przyklady/wtywor.zip Drogi Czytelniku! Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres http://helion.pl/user/opinie/wtywor Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję. Printed in Poland. • Kup książkę • Poleć książkę • Oceń książkę • Księgarnia internetowa • Lubię to! » Nasza społeczność Spis treści µ 5 Spis treści O autorach ..................................................................................................... 15 Wstęp ............................................................................................................. 17 Wprowadzenie .............................................................................................. 19 Rozdział 1. Wprowadzenie do wtyczek .......................................................................... 23 Co to jest wtyczka? .......................................................................................................23 W jaki sposób wtyczki współdziałają z platformą WordPress? .......................24 Kiedy wtyczki są wczytywane? ..............................................................................25 Dostępne wtyczki ..........................................................................................................25 Oficjalny katalog wtyczek ......................................................................................26 Przykłady popularnych wtyczek ...........................................................................26 Popularne tagi wtyczek ..........................................................................................27 Zalety wtyczek ...............................................................................................................27 Brak konieczności modyfikacji jądra platformy ................................................27 Nie trzeba wyważać otwartych drzwi ..................................................................28 Oddzielenie wtyczek i motywów ..........................................................................28 Łatwe uaktualnienia ...............................................................................................29 Łatwiejsze dzielenie się wtyczkami i ich ponowne używanie ...........................29 Wtyczki są oddzielone od siebie ...........................................................................29 Społeczność tworząca wtyczki ..............................................................................30 Instalacja wtyczek i zarządzanie nimi ........................................................................30 Instalacja wtyczki ....................................................................................................30 Zarządzanie wtyczkami .........................................................................................31 Edycja wtyczek ........................................................................................................31 Katalog wtyczek ......................................................................................................32 Typy wtyczek ...........................................................................................................32 Testowanie funkcji wtyczek ..................................................................................33 Podsumowanie ..............................................................................................................34 Rozdział 2. Podstawy wtyczek ........................................................................................ 35 Utworzenie pliku wtyczki ............................................................................................35 Nadanie nazwy wtyczce .........................................................................................35 Używanie katalogu .................................................................................................36 Stosowanie rozsądnych praktyk .................................................................................36 Stosowanie prefiksu w każdej sytuacji .................................................................36 Organizacja pliku ....................................................................................................37 Struktura katalogów ...............................................................................................37 6 µ WTYCZKI DO WORDPRESSA Wymagania dotyczące nagłówka ................................................................................38 Utworzenie nagłówka ............................................................................................38 Licencja wtyczki ......................................................................................................39 Określanie ścieżek dostępu ..........................................................................................39 Ścieżki dostępu wtyczki .........................................................................................40 Lokalne ścieżki dostępu .........................................................................................40 Adresy URL .............................................................................................................41 Aktywacja i dezaktywacja funkcji ...............................................................................42 Funkcja aktywacji wtyczki .....................................................................................42 Utworzenie ustawień domyślnych podczas aktywacji ......................................43 Funkcja dezaktywacji wtyczki ...............................................................................43 Dezaktywacja to nie dezinstalacja wtyczki ..........................................................44 Metody dezinstalacji .....................................................................................................44 Dlaczego dezinstalacja wtyczki jest konieczna? .................................................44 Plik uninstall.php ...................................................................................................44 Zaczep uninstall ......................................................................................................45 Standardy tworzenia kodu ...........................................................................................46 Twórz dokumentację kodu ...................................................................................46 Nazwy zmiennych, funkcji i plików .....................................................................47 Apostrof i cudzysłów ..............................................................................................47 Wcięcia .....................................................................................................................48 Styl stosowania nawiasów ......................................................................................48 Używanie spacji ......................................................................................................49 Skrócone znaczniki PHP .......................................................................................49 Polecenia SQL .........................................................................................................49 Lista rzeczy do sprawdzenia podczas prac nad wtyczkami .....................................49 Podsumowanie ..............................................................................................................50 Rozdział 3. Zaczepy .......................................................................................................... 51 Akcje ...............................................................................................................................52 Czym jest akcja? ......................................................................................................53 Funkcje zaczepu akcji ............................................................................................54 Najczęściej używane zaczepy akcji .......................................................................58 Filtry ...............................................................................................................................61 Funkcje zaczepu filtru ............................................................................................63 Funkcje szybko zwracające wartość .....................................................................67 Najczęściej używane zaczepy filtru ......................................................................68 Używanie zaczepów z poziomu klasy ........................................................................71 Tworzenie własnych zaczepów ...................................................................................72 Zalety utworzenia własnego zaczepu ...................................................................73 Przykład utworzenia własnego zaczepu akcji .....................................................73 Przykład własnego zaczepu filtru .........................................................................73 W jaki sposób wyszukiwać zaczepy? ..........................................................................75 Wyszukiwanie zaczepów w kodzie tworzącym jądro WordPress ...................75 Zaczepy zmienne ....................................................................................................75 Listy zaczepów ........................................................................................................76 Podsumowanie ..............................................................................................................76 Spis treści µ 7 Rozdział 5. Rozdział 4. Integracja z platformą WordPress ............................................................... 77 Dodawanie menu i podmenu .....................................................................................77 Utworzenie menu najwyższego poziomu ...........................................................77 Dodawanie podmenu .............................................................................................78 Dodawanie elementu menu do już istniejącego menu ......................................80 Tworzenie widgetów ....................................................................................................82 Utworzenie widgetu ...............................................................................................82 Widget zaawansowany ...........................................................................................87 Tworzenie widgetów kokpitu ...............................................................................92 Utworzenie widgetu kokpitu wraz z opcjami .....................................................93 Pola użytkowników ......................................................................................................96 Dodawanie własnego pola użytkownika .............................................................97 Zapis danych pola użytkownika ...........................................................................97 Zaawansowane pole użytkownika ......................................................................101 Zachowanie spójności ................................................................................................106 Korzystanie z interfejsu użytkownika platformy WordPress .........................106 Podsumowanie ............................................................................................................113 Internacjonalizacja .....................................................................................115 Internacjonalizacja i tłumaczenie na inne języki ....................................................115 Dlaczego warto przeprowadzać internacjonalizację? ......................................116 Zrozumienie zagadnienia internacjonalizacji w profesjonalnej pracy ..........116 Przygotowanie wtyczki do tłumaczenia na inne języki ...................................117 Wyświetlanie i zwracanie ciągów tekstowych ..................................................118 Używanie miejsc zarezerwowanych ...................................................................125 Internacjonalizacja kodu JavaScript ..................................................................127 Tworzenie plików tłumaczenia .................................................................................130 Pliki MO i PO ........................................................................................................130 Narzędzia służące do tłumaczenia .....................................................................130 W jaki sposób utworzyć plik POT? ....................................................................131 Gdzie przechowywać pliki tłumaczeń? ..............................................................131 Podsumowanie ............................................................................................................132 Rozdział 6. Bezpieczeństwo wtyczki .............................................................................133 Zabezpieczenie wtyczki ..............................................................................................133 Czym jest zapewnienie bezpieczeństwa wtyczce? ............................................134 Czym nie jest zapewnienie bezpieczeństwa wtyczce? ......................................134 Uprawnienia użytkownika ........................................................................................134 W jaki sposób używać funkcji current_user_can()? ........................................134 Nie sprawdzaj zbyt wcześnie ...............................................................................135 Unikalne identyfikatory .............................................................................................136 Uprawnienia kontra zamiary ..............................................................................136 Czym jest unikalny identyfikator? .....................................................................137 Jak tworzyć i weryfikować unikalne identyfikatory? .......................................137 Unikalne identyfikatory w skryptach Ajax .......................................................142 Weryfikacja i oczyszczenie danych ..........................................................................143 Potrzeba weryfikacji i oczyszczania danych .....................................................143 Dobra praktyka: identyfikacja potencjalnie niebezpiecznych danych ..........144 Weryfikacja czy oczyszczanie danych wejściowych? .......................................146 Przykłady weryfikacji i oczyszczania danych ...................................................147 8 µ WTYCZKI DO WORDPRESSA Formatowanie poleceń SQL ......................................................................................163 Obiekt $wpdb ........................................................................................................163 Dlaczego metody obiektu wpdb są lepsze? .......................................................163 Metody typu „wszystko w jednym” ...................................................................164 Najczęściej stosowane metody ............................................................................166 Ochrona zapytań przed atakami typu SQL Injection ......................................170 Różne metody i właściwości obiektu wpdb ......................................................172 Dobre nawyki bezpieczeństwa ..................................................................................172 Podsumowanie ............................................................................................................174 Rozdział 7. Ustawienia wtyczki .....................................................................................175 API Options .................................................................................................................175 Zapisywanie opcji .................................................................................................175 Zapisywanie tablicy opcji ....................................................................................176 Pobieranie opcji ....................................................................................................177 Wczytywanie tablicy opcji ...................................................................................178 Usuwanie opcji ......................................................................................................178 Parametr autoload ................................................................................................179 API Settings .................................................................................................................180 Zalety API Settings ...............................................................................................181 Funkcje API Settings ............................................................................................181 Zebranie całości: pełna strona zarządzania wtyczką .......................................185 Usprawnienie reakcji funkcji i weryfikacja błędów .........................................187 Dodawanie pól na istniejącej stronie .................................................................188 API Transients ............................................................................................................192 Zapisywanie opcji, która ma utracić ważność ..................................................192 Pobieranie opcji, która ma utracić ważność .....................................................192 Usunięcie opcji, która utraciła ważność ............................................................192 Praktyczny przykład użycia krótkotrwałych danych .......................................193 Szczegółowe informacje techniczne ...................................................................193 Idea krótkotrwałych danych ...............................................................................193 Zapisywanie ustawień poszczególnych użytkowników .........................................194 Tworzenie wtyczki ................................................................................................194 Metadane użytkownika ........................................................................................194 Uaktualnianie metadanych użytkownika ..........................................................195 Pobieranie metadanych użytkownika ................................................................196 Usunięcie metadanych użytkownika .................................................................196 Pobieranie identyfikatora użytkownika ............................................................197 Dodawanie pól na stronie profilu ......................................................................197 Wtyczka BOJ Admin Lang ..................................................................................199 Ustawienia dla poszczególnych użytkowników — najlepsze praktyki .........200 Przechowywanie danych we własnych tabelach .....................................................201 Typy danych ..........................................................................................................201 Standardowe tabele WordPress ..........................................................................202 Tworzenie własnej tabeli .....................................................................................202 Uaktualnienie struktury własnej tabeli ..............................................................203 Uzyskanie dostępu do własnej tabeli .................................................................206 Podsumowanie ............................................................................................................207 Spis treści µ 9 Rozdział 8. Użytkownicy ................................................................................................209 Praca z użytkownikami ..............................................................................................210 Funkcje użytkownika ...........................................................................................210 Tworzenie, uaktualnianie i usuwanie użytkowników .....................................214 Dane użytkownika ................................................................................................218 Metadane użytkownika ........................................................................................223 Role i możliwości ........................................................................................................229 Czym są role i możliwości? .................................................................................230 Role domyślne .......................................................................................................230 Własne role ............................................................................................................231 Ograniczanie dostępu ................................................................................................231 Sprawdzanie uprawnień użytkownika ...............................................................232 Czy użytkownik jest administratorem? .............................................................236 Nadanie własnych uprawnień .............................................................................237 Dostosowanie ról do własnych potrzeb ...................................................................238 Tworzenie roli .......................................................................................................238 Usunięcie roli ........................................................................................................239 Dodanie możliwości do roli ................................................................................241 Usuwanie możliwości z roli ................................................................................241 Wtyczka obsługująca własne role i możliwości ................................................242 Podsumowanie ............................................................................................................245 Rozdział 9. API HTTP ......................................................................................................247 Szybki kurs wykonywania żądań HTTP ..................................................................247 Czym jest żądanie HTTP? ...................................................................................247 Jak wykonywać żądania HTTP w PHP? ............................................................250 Funkcje obsługi HTTP oferowane przez WordPress ............................................251 Funkcje rodziny wp_remote_* ...........................................................................252 Konfiguracja zaawansowana i wskazówki ........................................................257 Ćwiczenie praktyczne: odczyt formatu JSON z zewnętrznego API ....................263 Pobieranie i odczytywanie danych JSON ..........................................................263 Funkcjonująca wtyczka ........................................................................................264 Ćwiczenie praktyczne: wysyłanie danych do zdalnego API .................................267 Formatowanie parametrów dla żądań POST ...................................................267 Gotowa wtyczka ....................................................................................................268 Ćwiczenie praktyczne: odczyt dowolnej treści .......................................................269 Utworzenie własnego repozytorium wtyczki ..........................................................270 Jak działa proces uaktualnienia wtyczki na platformie WordPress? .............270 Wykonywanie żądań do alternatywnego API z poziomu wtyczki ................272 Utworzenie alternatywnego API ........................................................................274 Kilka ostrzeżeń dotyczących własnych API ......................................................276 Przypadek specjalny: pobieranie zdalnych wiadomości RSS ................................276 Podsumowanie ............................................................................................................277 Rozdział 10. API Shortcode ..............................................................................................279 Tworzenie skrótu ........................................................................................................279 Czym jest skrót? ....................................................................................................279 Rejestracja własnego skrótu ................................................................................280 Wskazówki dotyczące skrótów .................................................................................284 Pomyśl o prostocie ...............................................................................................284 Pamiętaj o dynamiczności ...................................................................................287 10 µ WTYCZKI DO WORDPRESSA Wewnętrzny sposób działania ............................................................................288 Kod BBCode we wtyczce obsługującej komentarze ........................................290 Ograniczenia skrótów podczas obsługi struktur zagnieżdżonych .................292 Integracja z usługą Google Mapy .............................................................................293 Uzyskanie dostępu do API Google Geocoding ................................................293 Przechowywanie wyników ..................................................................................295 Uzyskanie dostępu do API Google Maps ..........................................................296 Więcej pomysłów dotyczących skrótów ..................................................................300 Wyświetlanie treści jedynie dla zalogowanych użytkowników ......................301 Wyświetlenie treści ograniczonej czasowo .......................................................302 Zaciemnienie adresu e-mail ................................................................................302 Podsumowanie ............................................................................................................303 Rozdział 11. Rozbudowa wpisów bloga: metadane, własne typy wpisów bloga i taksonomie ..................................................305 Tworzenie własnych typów wpisów bloga ..............................................................306 Możliwe typy wpisów bloga ................................................................................306 Rejestracja typu wpisu bloga ...............................................................................306 Ustawianie etykiet we własnym typie wpisu bloga ..........................................311 Wykorzystanie własnych możliwości ................................................................313 Dołączanie istniejących taksonomii ...................................................................314 Używanie własnych typów wpisów bloga ...............................................................315 Utworzenie pętli własnego typu wpisu bloga ...................................................315 Pobieranie treści własnego typu wpisu bloga ...................................................317 Sprawdzenie istnienia typu wpisu bloga ...........................................................318 Metadane wpisu bloga ...............................................................................................319 Dodawanie metadanych wpisu bloga ................................................................320 Pobieranie metadanych .......................................................................................321 Uaktualnienie metadanych wpisu bloga ...........................................................321 Usuwanie metadanych .........................................................................................322 Tworzenie własnych taksonomii ..............................................................................323 Zrozumienie taksonomii .....................................................................................323 Rejestracja własnej taksonomii ...........................................................................324 Przypisanie taksonomii do typu wpisu bloga ...................................................329 Używanie własnych taksonomii ...............................................................................329 Pobieranie taksonomii .........................................................................................329 Używanie taksonomii wraz z wpisami bloga ....................................................330 Tagi warunkowe taksonomii ..............................................................................332 Wtyczka typu wpisu bloga oraz taksonomii ...........................................................334 Podsumowanie ............................................................................................................336 Rozdział 12. Technologie JavaScript i Ajax na platformie WordPress ........................337 Krótkie wprowadzenie do jQuery ............................................................................337 Zalety wynikające z używania jQuery ................................................................337 Krótki kurs jQuery ...............................................................................................338 Technologia Ajax ........................................................................................................341 Czym jest Ajax? .....................................................................................................341 Najlepsze praktyki dotyczące technologii Ajax ................................................344 Dodawanie kodu JavaScript do WordPress ............................................................345 Prawidłowy sposób dołączania skryptów .........................................................345 Gdzie umieszczać skrypty? ..................................................................................351 Spis treści µ 11 Dodawanie skryptów jedynie wtedy, gdy są potrzebne ...................................353 Skrypty dynamiczne na platformie WordPress ...............................................357 Technologia Ajax na platformie WordPress ...........................................................360 Technologia Ajax na platformie WordPress: reguły .......................................360 Kompletny przykład: natychmiastowe odnośniki „Czytaj dalej” ..................362 Kolejny przykład: usunięcie komentarza ze strony .........................................369 Usuwanie błędów podczas używania technologii Ajax ...................................373 Podsumowanie ............................................................................................................374 Rozdział 13. Cron ..............................................................................................................375 Czym jest cron? ...........................................................................................................375 W jaki sposób działa demon cron? ....................................................................375 Tworzenie harmonogramu zadań cron ...................................................................376 Utworzenie powtarzającego się zadania harmonogramu ...............................376 Utworzenie jednorazowego zadania harmonogramu .....................................378 Usunięcie zadania z harmonogramu .................................................................380 Zdefiniowanie własnych odstępów czasu .........................................................381 Wyświetlenie zadań harmonogramu cron ........................................................381 Prawdziwy cron ..........................................................................................................385 Przykłady praktyczne .................................................................................................385 Usuwanie co tydzień wcześniejszych wersji wpisu bloga ...............................385 Wtyczka automatycznie wysyłająca wiadomość e-mail ..................................390 Wtyczka usuwająca komentarze ........................................................................393 Podsumowanie ............................................................................................................399 Rozdział 14. API Rewrite ..................................................................................................401 Dlaczego czasem trzeba zmieniać adresy URL? .....................................................401 Zasady dotyczące odnośników bezpośrednich .................................................402 Moduł mod_rewrite serwera Apache ................................................................402 Zmiany adresów URL na platformie WordPress .............................................403 W jaki sposób WordPress obsługuje zapytania? ....................................................404 Ogólny opis procesu wykonania zapytania ......................................................404 Obiekt rewrite .......................................................................................................405 Obiekt query ..........................................................................................................405 Co można zrobić przy użyciu wtyczek? .............................................................406 Przykłady praktyczne .................................................................................................406 Zmiana adresu URL w celu utworzenia listy sklepów .....................................407 Tworzenie nowej struktury odnośników bezpośrednich oraz integracja ze stronami, które nie powstały w WordPress ....................412 Wyświetlanie produktów sklepu ........................................................................414 Dodawanie punktu końcowego i zmiana formatu danych wyjściowych .....415 Dodanie własnego kanału wiadomości informującego o ostatnio dodanych obrazach ............................................................................................419 Podsumowanie ............................................................................................................421 Rozdział 15. Sieć Multisite ...............................................................................................423 Różnice .........................................................................................................................424 Standardowa konfiguracja WordPress kontra sieć Multisite .........................424 Zrozumienie terminologii sieci Multisite ..........................................................424 Zalety sieci Multisite ............................................................................................425 Włączenie sieci Multisite na platformie WordPress ..............................................425 12 µ WTYCZKI DO WORDPRESSA Funkcje sieci Multisite ...............................................................................................427 Potęga identyfikatora bloga .................................................................................427 Najczęściej używane funkcje ...............................................................................427 Przełączenie i przywracanie witryn internetowych .........................................429 Przykłady skrótów uzyskania dostępu do treści sieci ......................................432 Przykład widgetu z treścią sieciową ...................................................................436 Utworzenie nowej witryny ..................................................................................443 Opcje witryny sieci Multisite ..............................................................................448 Użytkownicy w sieci .............................................................................................448 Rola Superadministratora w sieci Multisite ......................................................452 Sprawdzenie właściciela witryny ........................................................................453 Dane statystyczne dotyczące sieci ......................................................................454 Schemat bazy danych sieci Multisite ........................................................................455 Tabele stosowane w sieci Multisite ....................................................................455 Tabele przeznaczone dla konkretnych witryn ..................................................455 Podsumowanie ............................................................................................................456 Rozdział 16. Usuwanie błędów i optymalizacja .............................................................457 Zapewnienie (lub nie) obsługi starszych wersji ......................................................457 Aktualizacja oprogramowania zgodnie z cyklem rozwojowym WordPress ...........................................................................................................458 Funkcje uznane za przestarzałe ..........................................................................459 Obsługa zbędnych instalacji ................................................................................460 Usuwanie błędów ........................................................................................................460 Włączenie trybu usuwania błędów ....................................................................461 Wyświetlanie komunikatów związanych z usuwaniem błędów ....................461 Poprawianie błędów wskazywanych przez komunikaty .................................462 Rejestrowanie błędów ................................................................................................466 Włączenie rejestrowania błędów ........................................................................466 Położenie pliku dziennika błędów .....................................................................467 Plik dziennika błędów ..........................................................................................467 Buforowanie ................................................................................................................467 Zapisywanie, wczytywanie i usuwanie buforowanych danych ......................468 Buforowanie danych we wtyczce ........................................................................469 Podsumowanie ............................................................................................................471 Rozdział 17. Działania marketingowe ............................................................................473 Wybór licencji dla wtyczki ........................................................................................474 Różne opcje ...........................................................................................................474 Dlaczego licencja ma znaczenie? ........................................................................475 Zarabianie pieniędzy pomimo stosowania licencji GPL .................................476 Udostępnienie wtyczki na witrynie WordPress.org ..............................................477 Utworzenie konta .................................................................................................478 Zgłoszenie wtyczki do oficjalnego repozytorium ............................................479 Konfiguracja SVN ................................................................................................479 Utworzenie pliku readme.txt ..............................................................................480 Rozsławienie wtyczki ..................................................................................................483 Nadawanie nazwy wtyczce ..................................................................................483 Zbudowanie witryny internetowej .....................................................................485 Utworzenie strony dla wtyczki ...........................................................................487 Ogłoszenie wydania wtyczki ...............................................................................487 Spis treści µ 13 Pomoc techniczna dla użytkowników wtyczki .................................................488 Zbieranie informacji od użytkowników ............................................................488 Wyjście z piwnicy .................................................................................................490 Inne metody promocji .........................................................................................490 Podsumowanie ............................................................................................................491 Rozdział 18. Narzędzia programisty ...............................................................................493 Jądro platformy jako punkt odniesienia ..................................................................493 Dokumentacja osadzona na platformie .............................................................493 Wyszukiwanie funkcji ..........................................................................................495 Najważniejsze pliki tworzące jądro platformy ..................................................495 Codex ............................................................................................................................497 Przeszukiwanie witryny Codex ..........................................................................497 Opis funkcji ...........................................................................................................498 Narzędzia oferowane przez inne witryny internetowe ..........................................498 PHPXref .................................................................................................................498 Baza danych zaczepów platformy WordPress ..................................................500 Zasoby oferowane przez społeczność ......................................................................500 Fora pomocy technicznej ....................................................................................500 Listy dyskusyjne ....................................................................................................501 Czat WordPress ....................................................................................................501 Informacje dotyczące prac rozwojowych nad WordPress ..............................502 Zgłaszanie pomysłów dla WordPress ................................................................502 Obsługiwane przez społeczność witryny z nowościami ..................................502 Wydarzenia lokalne ..............................................................................................503 Narzędzia .....................................................................................................................503 Przeglądarka internetowa ....................................................................................504 Edytor tekstu .........................................................................................................504 Obsługa plików za pomocą FTP, SFTP i SSH ..................................................505 phpMyAdmin .......................................................................................................505 Podsumowanie ............................................................................................................506 Skorowidz ....................................................................................................507 14 µ WTYCZKI DO WORDPRESSA 10 API Shortcode W TYM ROZDZIALE: „ Tworzenie własnego skrótu „ Rejestracja skomplikowanych i sparametryzowanych skrótów „ Zaawansowane wskazówki dotyczące skrótów „ Połączenie witryny z usługą Google Mapy Skróty (ang. shortcode) to charakterystyczny dla WordPress kod pozwalający na wykonywanie różnych operacji przy minimalnym wysiłku, np. osadzanie treści lub tworzenie obiektów, które normalnie wymagałyby użycia dużej ilości skomplikowanego kodu. W tym rozdziale dowiesz się, jak za pomocą jedynie niewielkiej liczby znaków umożliwić użytkow- nikom Twoich wtyczek rozbudowę wpisów bloga o zaawansowaną treść. Tworzenie skrótu W tym podrozdziale przekonasz się, czym są skróty oraz jak można je tworzyć; zaczniemy od zamienników w postaci prostych ciągów tekstowych, a skończymy na funkcjach zaawansowanych wraz z parametrami. Czym jest skrót? API Shortcode pozwala na tworzenie prostego kodu makro, czasami nazywanego BBCode z racji podobieństwa do popularnej składni w różnego rodzaju forach i serwisach komputerowych. Ogólnie rzecz biorąc, skrót to prosta składnia znaczników w nawiasach kwadratowych, np. [znacznik], stosowanych we wpisach bloga. W trakcie generowania i wyświetlania takiego wpisu bloga skrót jest dynamicznie zastępowany bardziej skomplikowaną i zdefiniowaną przez użytkow- nika treścią. Na rysunku 10.1 pokazano przykład wtyczki skrótu, która znacznik [date] zastępuje bieżącą datą i godziną. 280 µ ROZDZIAŁ 10. API SHORTCODE Rysunek 10.1. Wtyczka skrótu w działaniu Platforma WordPress domyślnie rejestruje wiele skrótów gotowych do wykorzystania. Przykła- dowo podczas wysyłania do serwera wielu obrazów dołączonych do danego wpisu bloga można w nim umieścić skrót [gallery], co spowoduje zastąpienie obrazów ładnie sformatowaną galerią. Z technicznego punktu widzenia skrót może być dowolnym ciągiem tekstowym odpowiednim do użycia w charakterze klucza tablicy. Przykładowo wymienione poniżej ciągi tekstowe można zastosować jako skróty: „ [foo], „ [Foo], „ [123], „ [133t], „ [Witaj Jestem Jan Kowalski]. W praktyce, w celu zachowania prostoty i uniknięcia potencjalnych konfliktów pomiędzy różnymi skrótami skróty będziesz rejestrował jako proste ciągi tekstowe zapisane małymi literami. UWAGA Nie wolno rejestrować własnych skrótów o nazwach [wp_caption], [caption], [gallery] i [embed], ponieważ są już zarejestrowane przez WordPress. Rejestracja własnego skrótu W tym punkcie dowiesz się, w jaki sposób rejestrować własne skróty. Ponadto poznasz praktyczne sposoby ich wykorzystania, od prostego zastępowania tagów aż po bardziej skomplikowane i sparametryzowane dane wyjściowe. Przedstawione poniżej wtyczki skrótów używają prefiksu w postaci boj_scX, gdzie X oznacza liczbę. Tworzenie skrótu µ 281 [ksiazka] Celem użycia skrótu jest przyśpieszenie wprowadzania danych i zastąpienie często stosowanych zdań ich skrótami, łatwymi do zapamiętania i szybszymi do wpisania. Jeżeli np. często wspominasz tytuł książki, którą promujesz w serwisie Amazon, wówczas zamiast za każdym razem pisać a href= http://www.amazon.com/dp/0470560541 ksiÈĝka /a , o wiele szybciej i prościej będzie napisać po prostu [ksiazka], prawda? W tym celu trzeba użyć funkcji add_shortcode() wymagającej podania dwóch parametrów: „ wzorca znacznika (bez otaczających go nawiasów kwadratowych); „ wywoływanej funkcji odpowiedzialnej za zastąpienie znacznika. ?php /* Plugin Name: Przykład skrótu nr 1 Plugin URI: http://przyklad.pl/ Description: Zastępuje znacznik [ksiazka] długim odnośnikiem prowadzącym do serwisu Amazon. Version: 1.0 Author: Ozh Author URI: http://wrox.com/ */ // Rejestracja nowego skrótu: [ksiazka]. add_shortcode( ksiazka , boj_sc1_book ); // Funkcja wywoływana w celu zastąpienia znacznika [ksiazka]. function boj_sc1_book() { return a href= http://www.amazon.com/dp/0470560541 ksiÈĝka a/ ; } ? Powyższy fragment kodu pochodzi z pliku plugin_boj_sc1.php. Jak to działa? 1. Za pomocą funkcji add_shortcode() zarejestrowano znacznik [ksiazka] jako nowy skrót, który będzie zastąpiony przez dane wyjściowe wygenerowane przez funkcję boj_sc1_book(). 2. Wywoływana funkcja zastępująca skrót (tutaj: boj_sc1_book()) musi na końcu zwrócić wartość za pomocą polecenia return. Błędem bardzo często popełnianym przez początkujących jest użycie do wyświetlenia wartości polecenia echo zamiast return. Trzeba pamiętać, że w tym przypadku nie można użyć polecenia echo. Po aktywacji wtyczki można już napisać: „Kup moją [ksiazka]” na stronie wpisu bloga, a znacz- nik zostanie zastąpiony odnośnikiem prowadzącym na stronę w serwisie Amazon. Warto zwrócić uwagę, że platforma WordPress jest bardzo elastyczna w zakresie składni skrótu: można stosować znaczniki mniej lub więcej przypominające znaczniki XHTML dowolnego typu, np. [ksiazka], [ksiazka ], [ksiazka/] i [ksiazka /]. Jedynym warunkiem jest, aby pomiędzy nawiasem otwierającym znacznik i samym znacznikiem nie było spacji. [ksiazki tytul= xkcd ] Co zrobić w sytuacji, gdy chcesz promować więcej niż jedną książkę? 282 µ ROZDZIAŁ 10. API SHORTCODE Pierwszą opcją będzie utworzenie wielu skrótów w sposób przedstawiony powyżej, po jednym dla każdej książki (np. [ksiazka1], [ksiazka2], [ksiazka3] itd.). Jednak znacznie bardziej eleganc- kim rozwiązaniem będzie użycie atrybutu dla skrótu. W ten sposób można zastosować sprytniejszą składnię w postaci [ksiazki tytul= prowp ] lub [ksiazki tytul= xkcd ]. W kodzie ponownie będzie użyta ta sama funkcja add_shortcode(), ale tym razem z nowym parametrem $attr, który pobiera tablicę atrybutu — parę wartości. ?php /* Plugin Name: Przykład skrótu nr 2 Plugin URI: http://przyklad.pl/ Description: Zastępuje znacznik [ksiazki tytul= xxx ] różnymi odnośnikami prowadzącymi do serwisu ´Amazon. Version: 1.0 Author: Ozh Author URI: http://wrox.com/ */ // Rejestracja nowego skrótu: [ksiazki tytul= xxx ]. add_shortcode( ksiazki , boj_sc2_multiple_books ); // Funkcja wywoływana w celu zastąpienia znacznika [ksiazki]. function boj_sc2_multiple_books( $attr ) { switch( $attr[ tytul ] ) { case xkcd : $asin = 0615314465 ; $title = XKCD Volume 0 ; break; default: case prowp : $asin = 0470560541 ; $title = Professional WordPress ; break; } return a href= http://www.amazon.com/dp/$asin $title a/ ; } ? Powyższy fragment kodu pochodzi z pliku plugin_boj_sc2.php. Jak to działa? 1. Za pomocą funkcji add_shortcode() zarejestrowano znacznik [ksiazki] jako nowy skrót. 2. Funkcja odpowiedzialna za zastąpienie znacznika boj_sc2_multiple_books() oczekuje podania parametru $attr w postaci tablicy atrybutu — pary wartości do użycia w skrócie. Przykładowo po użyciu znacznika [ksiazki tytul= prowp ] funkcja otrzyma parametr w postaci array( tytul = prowp ). 3. Funkcja odpowiedzialna za zastąpienie znacznika będzie zwracała różne wartości w zależności od przekazanego jej atrybutu. 4. Użycie znacznika [ksiazki] bez atrybutu spowoduje, że funkcja otrzyma pusty ciąg tekstowy. W takim przypadku zwrócona będzie wartość domyślna zdefiniowana w kodzie. [amazon asin= 12345 ]tytuł książki[/amazon] Przygotowaną powyżej wtyczkę można jeszcze bardziej usprawnić, czyli umożliwić sparametry- zowanie tekstu w odnośniku prowadzącym do serwisu Amazon. Użyta będzie ponownie ta sama funkcja add_shortcode(), ale tym razem z drugim parametrem — $content — który będzie przekazywał ciąg tekstowy wykorzystany następnie jako tekst w odnośniku. Tworzenie skrótu µ 283 ?php /* Plugin Name: Przykład skrótu nr 3 Plugin URI: http://przyklad.pl/ Description: Zastępuje znacznik [amazon isbn= xxx ]tytul ksiazki[/amazon]. Version: 1.0 Author: Ozh Author URI: http://wrox.com/ */ // Rejestracja nowego skrótu: [amazon isbn= 123 ]tytul ksiazki[/amazon]. add_shortcode( amazon , boj_sc3_amazon ); // Funkcja wywoływana w celu zastąpienia znacznika [amazon]. function boj_sc3_amazon( $attr, $content ) { // Pobranie numeru ASIN (Amazon Standard Identification Number). if( isset( $attr[ asin ] ) ) { $asin = preg_replace( /[^\d]/ , , $attr[ asin ] ); } else { $asin = 0470560541 ; } // Oczyszczenie treści lub ustawienie domyślnej. if( !empty( $content ) ) { $content = esc_html( $content ); } else { if( $asin == 0470560541 ) { $content = Professional WordPress ; } else { $content = ta ksiÈĝka ; } } return a href= http://www.amazon.com/dp/$asin $content a/ ; } ? Powyższy fragment kodu pochodzi z pliku plugin_boj_sc3.php. Jak to działa? 1. Zarejestrowano kolejny skrót, tym razem używając znacznika [amazon]. 2. Funkcja odpowiedzialna za zastąpienie znacznika boj_sc3_amazon() oczekuje dwóch opcjonalnych parametrów: tablicy atrybutu — pary wartości do użycia w skrócie oraz ciągu tekstowego umieszczonego pomiędzy znacznikami skrótu otwierającym i zamykającym. 3. Funkcja odpowiedzialna za zastąpienie znacznika musi obsłużyć różne kombinacje brakującego atrybutu w postaci numeru ASIN (ang. Amazon Standard Identification Number) i (lub) tytułu książki: znaczniki [amazon], [amazon asin= 123 ] i [amazon]super ksiÈĝka[/amazon] działają bez problemów. 4. Skrót może zwrócić dowolną treść, więc trzeba pamiętać o zastosowaniu technik omówionych w rozdziale 6. Numer ASIN trzeba oczyścić, aby składał się jedynie z cyfr. Ponadto należy się upewnić, że tytuł książki może być bezpiecznie wyświetlony w Twoim blogu i nie zniszczy znacznika a , w którym będzie umieszczony. 284 µ ROZDZIAŁ 10. API SHORTCODE Podsumowanie: funkcja add_shortcode() i funkcja odpowiedzialna za zastąpienie znacznika Podczas rejestracji nowego skrótu dwa parametry definiują wzorzec znacznika w nawiasach kwa- dratowych oraz funkcję wywoływaną w celu zastąpienia znacznika: ?php add_shortcode( boj , boj_my_shortcode ); ? Funkcja odpowiedzialna za zastąpienie znacznika pobiera dwa parametry (puste, jeśli zostaną pominięte), czyli tablicę atrybutu — para wartości — oraz ciąg tekstowy definiujący treść umiesz- czaną pomiędzy znacznikami skrótu otwierającym i zamykającym. Podobnie jak w kodzie HTML, wielkość liter w atrybutach nie ma znaczenia. Tak jak w każdej innej funkcji PHP, istnieje możliwość zdefiniowania wartości domyślnych. Trzeba pamiętać, że funkcja odpowiedzialna za zastąpienie znacznika musi zwrócić wartość. ?php function boj_my_shortcode( $attr = array( var = wartoĂÊ ), $content = ´ ksiÈĝka ) { // $attr to tablica asocjacyjna. // $content to ciąg tekstowy. return $something; } ? Atrybuty skrótu nie rozróżniają wielkości liter, mogą mieć dowolną wartość lub nie mieć jej wcale, a także obsługują znaki cudzysłowu lub akceptują ich brak. Przedstawione poniżej przykłady pokazują wartości tablicy $attr w funkcji odpowiedzialnej za zastąpienie znacznika, w zależności od sposobu użycia skrótu: „ [boj] : $attr będzie pustym ciągiem tekstowym; „ [boj hello] : $attr będzie tablicą array( hello ); „ [boj name=ozh skillz= 1337 MAP= q3dm6 ] : $attr będzie tablicą array ( name = ozh , skillz = 1337 , map = q3dm6 ). Wskazówki dotyczące skrótów Skróty to doskonały sposób wzbogacenia wpisu bloga skomplikowaną i dynamiczną treścią. W celu zagwarantowania dostarczenia użytkownikowi najlepszych wrażeń autor wtyczki powinien pamię- tać o dwóch podstawowych zasadach: „ zbuduj prostą i niezawodną wtyczkę; „ pamiętaj, że jest dynamiczna. Pomyśl o prostocie Użytkownik jest zadowolony, kiedy otrzymuje nowe funkcje do bloga i jednocześnie może stoso- wać skróty pozwalające na wyświetlanie znacznie bardziej skomplikowanej treści. Jednak zapa- miętywanie składni parametrów skrótu jest niewygodne: powstaje wrażenie konieczności pozna- nia nowego języka znaczników. Wskazówki dotyczące skrótów µ 285 Powróćmy jeszcze na chwilę do skrótu [amazon]: istnieje możliwość przygotowania wtyczki, która będzie dodawała skrót [amazonobraz] wyświetlający obraz produktu z serwisu Amazon. Zadaniem użytkownika jest podanie numeru ASIN, typu obrazu (książka czy płyta CD) oraz jego wielkości. Po zbudowaniu wtyczka będzie zezwalała na użycie skrótu, takiego jak [amazonobraz asin= 12345 typ= CD wielkoscobrazu= maly ]. Kiedy użytkownik posiada tę wtyczkę od dłuższego czasu, może zapomnieć nazwy i składni atry- butów. Czy to było [amazonobraz], czy [obrazamazon]? Czy atrybutem jest isbn, czy asin? Czy wielkoscobrazu= ogromny , czy duzy ? Czy typ= CD , czy typ= dysk ? Wprawdzie posiadanie dużej liczby opcji może być zaletą, ale równocześnie nie chcesz, aby użyt- kownicy musieli nieustannie sięgać do dokumentacji, ponieważ to sprawia niekorzystne wrażenie. Warto sprawy uprościć i pozwolić użytkownikom na instynktowne używanie wtyczki. Po wprowadzeniu modyfikacji kod wtyczki przedstawia się następująco: ?php ?php /* Plugin Name: Przykład skrótu nr 4 Plugin URI: http:/przyklad.pl/ Description: Zastąpienie znacznika [amazonobraz] obrazem z serwisu Amazon. Version: 1.0 Author: Ozh Author URI: http://wrox.com/ */ // Rejestracja skrótów [amazonobraz] i [obrazamazon] add_shortcode( amazonobraz , boj_sc4_amazonimage ); add_shortcode( obrazamazon , boj_sc4_amazonimage ); // Funkcja odpowiedzialna za zastąpienie skrótu [amazonobraz]. function boj_sc4_amazonimage( $attr, $content ) { // Pobranie numeru ASIN lub ustawienie domyślnego. $possible = array( asin , isbn ); $asin = boj_sc4_find( $possible, $attr, 0470560541 ); // Pobranie powiązanego identyfikatora lub ustawienie domyślnego. $possible = array( aff , affiliate ); $aff = boj_sc4_find( $possible, $attr, aff_id ); // Pobranie wielkości obrazu, jeśli podano. $possible = array( wielkosc , obraz , wielkoscobrazu ); $size = boj_sc4_find( $possible, $attr, ); // Pobranie typu, jeśli podano. if( isset( $attr[ type ] ) ) { $type = strtolower( $attr[ typ ] ); $type = ( $type == cd or $type == dysk ) ? cd : ; } // Utworzenie adresu URL prowadzącego do obrazu w serwisie Amazon. $img = http://images.amazon.com/images/P/ ; 286 µ ROZDZIAŁ 10. API SHORTCODE $img .= $asin; // Opcje obrazu: wielkość. if( $size ) { switch( $size ) { case maly : $size = _AA100 ; break; default: case sredni : $size = _AA175 ; break; case duzy : case ogromny : $size = _SCLZZZZZZZ ; break; // Dobra praktyka, nie zapomnij o ostatnim poleceniu break. } } // Opcje obrazu: typ. if( $type == cd ) { $type = _PF ; } // Dołączenie opcji do adresu URL, o ile podano jakiekolwiek opcje. if( $type or $size ) { $img .= .01. .$type.$size; } // Zakończenie tworzenia adresu URL obrazu. $img .= .jpg ; // Trzeba pamiętać o zwróceniu obrazu. return a href= http://www.amazon.com/dp/$asin img src= $img / /a ; } // Funkcja pomocnicza: // Wyszukuje $find_keys w tablicy $in_array, zwraca $default, jeśli nie znajdzie $find_keys. function boj_sc4_find( $find_keys, $in_array, $default ) { foreach( $find_keys as $key ) { if( isset( $in_array[$key] ) ) return $in_array[$key]; } return $default; } ? Powyższy fragment kodu pochodzi z pliku plugin_boj_sc4.php. Najpierw uwagę należy zwrócić na rejestrację dwóch skrótów wywołujących tę samą funkcję: w ten sposób użytkownik może użyć skrótu zarówno [amazonobraz], jak i [obrazamazon]. Następnie warto zwrócić uwagę na to, jak wiele atrybutów jest traktowanych jako synonimy: przy użyciu funkcji pomocniczej o nazwie boj_sc4_find() główna funkcja odpowiedzialna za obsługę skrótu sprawdza wartości $attr[ asin ] i $attr[ isbn ]. Gdy ich brakuje powoduje ustawienie wartości domyślnej. Kiedy informacje nie są związane z platformą WordPress, warto także przyjrzeć się sposobowi tworzenia przez wtyczkę odnośnika do obrazu w serwisie Amazon. Podstawowy adres URL to http://images.amazon.com/images/P/; do niego są dołączane następujące elementy: Wskazówki dotyczące skrótów µ 287 „ numer ASIN, np. w postaci B002OEBMN4; „ jeśli mają być użyte opcje, trzeba dołączyć .01.; „ pierwsza użyta opcja to wielkość: dołączenie _AA100 powoduje pobranie obrazu o szerokości 100 pikseli, podczas gdy dołączenie _SCLZZZZZZZ pobiera dużą wersję obrazu; „ inna możliwa opcja to pobranie obrazu płyty CD: w tym celu do tworzonego adresu URL trzeba dołączyć _PF; „ na końcu adres URL obrazu trzeba zakończyć, dodając .jpg. Po aktywacji wtyczki można utworzyć nowy wpis bloga o treści Aktualnie sïucham [amazonobraz asin= B00008WT5E typ= cd wielkosc= maly ], a otrzymany wynik będzie podobny do poka- zanego na rysunku 10.2. Rysunek 10.2. Wtyczka pobierająca dane z serwisu Amazon w działaniu Pamiętaj o dynamiczności Dane skrótu są generowane dynamicznie: za każdym razem, gdy platforma WordPress wyświetla stronę (pojedynczy wpis bloga lub archiwum), treść skrótu jest przetwarzana, a wszystkie skróty zastępowane są danymi zwracanymi przez wywołania funkcj
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

Wtyczki do WordPressa. Programowanie dla profesjonalistów
Autor:
, ,

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: