Wtyczki Must Use (MU-Plugins)

Zapewne większość z was nigdy nie korzystała z wtyczek typu Must Use (aka pl. wymuszane). Nie jest to żadna nowość, a starość, która od ponad 6 lat istnieje w WordPressie niczym nieznana dziura.

Wymuszane wtyczki muszą znajdować się w folderze mu-plugins, który trzeba ręcznie utworzyć w lokalizacji wp-content. Od standardowych wtyczek różnią się tym, że nie można ich usunąć, edytować czy aktualizować z poziomu WordPress-a. Administrator musi sam je zainstalować poprzez FTP i dbać o ich aktualizację.

Domyślne wtyczki nie zadziałają, gdy zostaną przeniesione do katalogu mu-plugins, ponieważ WordPress widzi pliki bezpośrednio umiejscowione w katalogu mu-plugins. Również nie zadziałają tłumaczenia, ponieważ istnieje inna funkcja, która odpowiedzialna jest za ładowanie plików tłumaczeń (load_muplugin_textdomain).

Po co w takim razie potrzebne są nam wtyczki MU? Osobiście używam ich do rozwiązań dedykowanych danemu projektowi, które są stałe i nie będą wymagały częstych aktualizacji. Zamiast zaszywać te funkcje w szablonie, lepiej wywołać je we wtyczce, która będzie zawsze dostępna. Można przede wszystkim zadbać o to, aby wszystkie typy wpisów były rejestrowane we wtyczce „must-use”. Ma to służyć przede wszystkim bezpieczeństwu i stabilności systemu.

Na koniec pokażę wam pokrótce, jak taka wtyczka powinna wyglądać.

W pierwszej kolejność musimy utworzyć katalog mu-plugins w katalogu wp-content. W nim tworzymy plik index.php, który powinien wyglądać miej więcej tak:

<?php
/*
Plugin Name: Moja MU
Version: 1.0
Plugin URI: http://strona.pl/
Description: Zestaw wtyczek rozszerzających funkcjonalność WordPress-a.
Author: Franciszek Bączek
License: GPL2
*/
load_muplugin_textdomain('muplugins', 'assets/language');

function muplugins_admin_enqueue_scripts() {
wp_enqueue_style( 'muplugins', plugins_url('/assets/css/muadmin.css', __FILE__) );
wp_register_script( 'muplugins', plugins_url('/assets/js/muadmin.js', __FILE__), '', 1, true );
wp_enqueue_script( 'muplugins' );
}
add_action('admin_enqueue_scripts', 'muplugins_admin_enqueue_scripts' );
require_once("assets/register_post_type.php");
?>

Jeżeli mamy utworzony i zapisany plik index.php musimy stworzyć jeszcze katalog assets, w którym następnie stworzymy katalogi css, js i language oraz plik o nazwie register_post_type.php. Jeżeli znacie się trochę na programowaniu, to zaimplementowanie mechanizmu „must use plugins” będzie banalne.

You may also like...

  • Bardzo ciekawy temat. Spotkałem się z nim po kilku latach znajomości z WordPressem. Więc dla osób początkujących – to nowinka 🙂