Istnieje w WordPressie coś takiego jak specjalna kategoria wtyczek są to tzw. wtyczki wymuszane. Mówiąc w skrócie, jest to jeszcze jeden sposób na rozszerzanie możliwości WordPressa. A moim zdaniem jest to bardzo ciekawy sposób, jednocześnie prosty w użyciu, idealnie nadający się dla osób, które na swojej stronie poza możliwością dodawania wpisów potrzebują niestandardowych rozwiązań.
Pluginy wymuszone są odpowiedzią na zachowanie wszelkich snippetów pomiędzy zmianami motywów, które zwykle dodaje się do pliku functions.php
w celu dodania lub rozszerzenia funkcjonalności witryny. Jest to „must-use” dla osób które lubią czasem zmienić motyw swojej strony, ale boją się, że wszelkie dodane usprawnienia zostaną utracone.
WordPress wtyczki wymuszane
Wtyczki wymuszane (Must Use Plugins, lub po prostu mu-plugins), to wtyczki zainstalowane w specjalny sposób. Wystarczy wybraną wtyczkę zapisać w katalogu wp-content/mu-plugins
, aby już stała się wtyczką wymuszoną. Tak zainstalowanych wtyczek nie trzeba (nie można) aktywować. Nie można ich również wyłączyć. Wtyczki są aktywne i działają dopóki znajdują się w katalogu mu-plugins
.
Nie ma możliwości, aby taką wtyczkę przypadkiem, albo nawet specjalnie, z poziomu kokpitu wyłączyć. 🙂
Minusy i ograniczenia
Niewątpliwym minusem jest to, że wszystkie aktualizacje będziemy musieli wykonywać ręcznie, sami. Niestety nie zostaniemy poinformowani przez WordPress o pojawieniu się nowej wersji tak zainstalowanego pluginu.
Problemem mogą być też pluginy korzystające z activation hooks. Niestety jest to już poważne ograniczenie, gdyż większość pluginów wykorzystuje wspomniane hooksy do uruchomienia kodu instalacyjnego i konfiguracyjnego pluginu, a po wyłączeniu do „wyczyszczenia swoich danych”. Oczywiście istnieją sposoby na ominięcie tego problemu, jednakże nie polecam na siłę instalować w ten sposób nie swoich dodatków.
Kiedy stosować wtyczki wymuszane
Wtyczki wymuszone, jak pisałem we wstępie, to idealny sposób na dodawanie dodatkowych funkcjonalności związanych ze stroną, rzeczy, które powinny działać zawsze, nawet przy zmianie motywu, np.:
- własne taksonomie, formaty wpisów (custom post type) oraz powiązane z nimi własne pola,
- większość shortcodów związanych z formatowaniem tekstu,
- funkcje, filtry, akcje dodające jakieś funkcjonalności, lub zmieniające ich zachowanie.
Generalnie wszystko to, co przy zmianie motywu zwykle musielibyśmy ręcznie przenosić ze starego pliku functions.php
do nowego. Kawałki kodu, które są dość ważne dla funkcjonowania strony, ale były zbyt małe, aby stać się pełnoprawnym pluginem.
Pluginy wymuszane zamiast functions.php
Ponieważ bardzo lubię pomagać moim czytelnikom, przytoczę teraz kilka praktycznych przykładów wykorzystania tej techniki.
Wbrew wszelkim przekonaniom, przeniesienie swoich snippetów z functions.php
do katalogu mu-plugins
wcale nie jest takie trudne:
- W katalogu
wp-content
tworzymy nowy katalogmu-plugins
. - W nowo utworzonym katalogu tworzymy nowy plik np.
customs.php
. - Otwieramy plik do edycji i dodajemy nasz kod:
<?php // Mój ulubiony shortcode function caption_shortcode( $atts, $content = null ) { return '<span class="caption">' . $content . '</span>'; } add_shortcode( 'caption', 'caption_shortcode' ); // Przykład shortcode zaczerpnięty z kodeksu WordPress
- Plik zapisujemy i już możemy cieszyć się dobrodziejstwami nowego shortcode i mu-pluginu. 🙂
W katalogu mu-plugins
możemy utworzyć plik i operować na nim podobnie jak na starym functions.php
– bez dodawania dodatkowych nagłówków wymaganych w przypadku pluginów. W jednym pliku upakujemy wiele, albo nawet wszystkie nasze ulubione snippety.
W kokpicie WordPress pluginy wymuszone bez ustawionych dodatkowych nagłówków wyglądają w ten sposób:
Ale można też dodać na początku komentarz typowo – pluginowy z informacjami o nazwie, danymi autora, wersji itp.:
<?php /* Plugin Name: Customowe funkcje Description: Funkcje rozszerzające możliwości mojej strony Version: 1.0 Author: ziemekpr0@gmail.com */
aby otrzymać coś takiego: (Patrz screeny). Jest to zupełnie opcjonalny zabieg, jednak warto nawet dla siebie dodać kilka informacji do czego służy owy plugin/plik.
[…] do plugins katalogu mu-plugins. Więcej na ten temat znajduje się we wpisie o wtyczkach funkcjonalnych. Plugin może być też przechowywany w dowolnym podkatalogu motywu. Jest to częsta praktyka w […]
[…] W miejsce XXX należy wkleić swój identyfikator wydawcy. Następnie, cały powyższy kod zapisujemy w nowym pliku – nazwa dowolna, rozszerzenie .php – koniecznie. Ostatni krok, to umieszczenie pliku na serwerze w katalogu: wp-content/mu-plugins. Dlaczego tam, o tym możecie przeczytać we wpisie o pluginach wymuszanych: WordPress wtyczki wymuszane. […]