Code Snippets – świetny sposób na dodawanie własnego kodu do strony

Code Snippets

W Internecie pełno jest krótkich, użytecznych kawałków kodu, które pozwalają na dodanie lub zmodyfikowanie jakiejś funkcji WordPressa. Jakiś czas temu rozważałem, gdzie taki kod należy umieszczać – w pliku functions.php motywu czy we wtyczce. Teraz chciałbym zaprezentować trzecią możliwość – darmowe rozszerzenie Code Snippets, które pozwala na łatwe zarządzanie takimi „wstawkami”.

Ogólna zasada jest taka: jeśli kod jest związany z używanym przez nas motywem i jego wyglądem, to wrzucamy go do pliku functions.php, a jeśli jest od niego niezależny – do wtyczki. Głównym problemem jest fakt, iż dodanie kilku krótkich kawałków kodu wymaga od nas albo stworzenia własnego rozszerzenia, albo skorzystania z gotowych. Oficjalne repozytorium WordPressa jest pełne prostych wtyczek, które składają się z nie więcej niż kilku lub kilkunastu linii kodu – może się okazać, że aby osiągnąć nasz cel potrzebujemy zainstalować kilka takich wtyczek. Pomijając kwestię wydajności takiego rozwiązania, duża ilość aktywnych rozszerzeń na pewno nie pomaga w utrzymaniu strony w należytym porządku.

Dzięki wtyczce Code Snippets nie musimy się martwić o to, w którym miejscu umieścić nasz kod. Dodatkowo łatwo możemy włączyć lub wyłączyć dowolne „wstawki”, bez konieczności przeszukiwania plików i grzebania na serwerze.

Po instalacji i aktywacji rozszerzenia w menu panelu administracyjnego pojawi się nowa sekcja Snippets, w której znajdziemy wszystkie nasze kawałki kodu.

Code Snippets

Korzystając z opcji dostępnych pod snippetem możemy go aktywować, dezaktywować, edytować, usunąć lub wyeksportować. Kod jest eksportowany do pliku XML, ale w menu Masowe działania jest również dostępny eksport do PHP – jego wynikiem jest kod PHP, który bez żadnych zmian możemy wkleić na przykład do pliku functions.php.

Code Snippets

Tworzenie nowego snippeta jest bardzo proste. Wystarczy nadać mu tytuł (najlepiej taki, który powie nam do czego dany kawałek kodu służy) i wkleić nasz kod PHP w polu Code. Opcjonalnie możemy dodać równie opis, dzięki któremu za rok wciąż będziemy wiedzieli do czego nasz snippet służy.

Dodatkową zaletą wtyczki jest możliwość importu wyeksportowanych wcześniej kawałków kodu. Jest to szczególnie wygodne gdy mamy własny zestaw snippetów, którego używamy w wielu serwisach. Import jest robiony za pomocą standardowego mechanizmu WordPressa – odpowiedni importer jest dostępny w sekcji Narzędzia → Import panelu administracyjnego. Wystarczy wybrać wygenerowany podczas eksportu plik XML i kliknąć przycisk Upload file and import.

Code Snippets

Bezpośredni link

  • Alternatywa dla panel skórki, dodajesz na stronie klienta kilka takich snippetów jak np: duże ikony we wpisach i małe ikony we wpisach i Kowalski sobie aktywuje duże albo małe :) Albo włącza/wyłącza coś innego.

    „Pomijając kwestię wydajności takiego rozwiązania, duża ilość aktywnych rozszerzeń na pewno nie pomaga w utrzymaniu strony w należytym porządku.”

    I tu pole do popisu dla Plugin Organizer. Oczywiście warto stosować zasadę – co zbędne albo mało używane posłać w diabły. Ale trzeba też sobie/klientowi czasami ułatwić życie np: przy tworzeniu wpisów. W takiej sytuacji ustawiamy (opjonalnie osobno dla desktopowych i mobilnych urządzeń) na jakich stronach dane wtyczki mają działać a na jakich nie i nie jest tak źle nawet przy większej ilości wtyczek.

    • W tym przypadku Plugin Organizer się nie sprawdzi, bo za jego pomocą możesz włączać lub wyłączać całą wtyczkę, a tutaj dobrze byłoby mieć kontrolę nad poszczególnymi snippetami (są przecież takie, które powinny być zawsze aktywne).

      • Z PO chodziło o wtyczki, nie snippety. „duża ilość aktywnych rozszerzeń” – maiłeś na myśli własne kawałki kodu? A to sorki.

        • Oczywiście w tym zdaniu miałem na myśli wtyczki, a w komentarzu snippety. Przepraszam za zamieszanie. ;)

      • „tutaj dobrze byłoby mieć kontrolę nad poszczególnymi snippetami”

        Jaką? Bo przy ich dodawaniu mamy pewną kontrolę. Gdzie mają się wyświetlać (typ wpisu, archiwum, kategoria itd.) czy dla kogo – która ranga.

        • Wtyczka Code Snippets nie daje nam takiej kontroli nad snippetami.

          • W samym snippecie. Albo sama akcja np: „add_action(login_head” czy „add_action(sekcja_pod_wpisem” (jeżeli użytkowana skórka ma zdefiniowane miejsca) określi miejsce/sekcję strony jego działania albo dodatkowy warunek.

            Oczywiście, gdyby sama wtyczka umożliwiała określenie warunków wyświetlania/działania jak to umożliwia w temacie pól np: Advanced Custom Field to by było świetnie, mniej zabawy.

  • PiotrPo

    Równie dobrze można skorzystać z edytora plików szablonu i tam sobie będzie wklejał kod. Ostatnio zauważyłem, że ACF strasznie spowolnił mi działanie strony. Także lepiej czasem polegać na własnych prostszych rozwiązaniach prosto z pliku functions.pgp

  • A czy do funkcji, ble snippetsa można podpiąć jakiś plik? I na przykład wykorzystać go do włączenia jakiegoś skryptu JS? Szkoda iż w narzędziach eksportu nie przewidzieli możliwość eksportu do mini-plugina, którego można przekazać innej osobie.

    • W umieszczanym w ten sposób kodzie można używać funkcji wp_queue_script(), więc bez problemu możesz dołączyć skrypt JS.

      I zgadzam się – generacja mini-wtyczki byłaby ciekawą funkcją. Zgłoś to autorowi – może ten pomysł mu się spodoba. ;)

      • wp_queue_script() mogę załączyć skrypt który stoi na serwerze internetowym. Jak zrobiłem swój skrypt i chcę go gdzieś umieścić, to go najpierw muszę gdzieś uploadować. I tu niestety pojawia się kombinowanie, może bezpośrednio na serwer do jakiegoś katalogu nie WP, a może do mediów itp. – Już nie mówią iż taka mini-wtyczka nie wyeksportuje pliku JS, który jest ukryty gdzieś na moim serwerze.

        Ale to samo dotyczy się również plików CSS, plików graficznych czy nawet zewnętrznych skryptów php, które miał by wykonać taki snippets.

        Przydało by się, by każdy snippets miał swoją strukturę plików (załączników): /php, /css, /js, /images