Обязательные плагины в WordPress (mu-plugins)

Обязательные плагины в WordPress (mu-plugins) — это плагины, которые физически находятся в специальной папке /wp-content/mu-plugins/. Эти плагины всегда включены, активируются автоматически и их нельзя деактивировать.

mu-plugins - обязательные плагины

В админке, в списке обычных плагинов они не отображаются. Но, они видны в разделе Плагины — Необходимые.

mu-plugins - обязательные плагины

Эти плагины считываются только тогда, когда находятся не в виде папок, а в виде отдельных файлов. Т.е. один файл = один плагин. WordPress не умеет видеть такие плагины, если они находятся в папках.

mu-plugins - обязательные плагины

В общем, эти плагины это просто набор файлов, которые выполняют пользовательские/произвольные функции. Функции могут быть разными. Например, у нас есть функция вывода хлебных крошек, или функции подключения файлов локализации, или любые др. функции. Для того, чтобы такие функции начали работать, их нужно вставить в функциональный файл шаблона, например в файл functions.php. Но, таких функций может быть много и они затрутся после обновления шаблона.

Я считаю, что это создает неудобство при обновлении шаблона. Нам нужно вспоминать где мы и что вставляли и снова это переносить в новый файл.

Для таких целей лучше использовать файлы обязательных плагинов.

Практическое применение этих плагинов обычными пользователями

Расскажу как я лично использую эти обязательные плагины.

1) Вставка произвольных функций
На своих сайтах я создаю в папке /mu-plugins/ файл myfunctions.php и добавляю в этот файл все свои произвольные функции. При этом функциональный файл шаблона содержит только авторский код.

2) Подключение файлов локализации
Я занимаюсь локализацией шаблонов и плагинов WordPress. Очень часто для подключения основных и дополнительных доменов локализации необходимо прописывать дополнительные функции подключения файлов локализации. Эти функции также прописываются в функциональных файлах шаблонов. После обновления шаблона моим клиентам снова придется вставлять эти функции подключения файлов локализации.

Читайте:  Как сделать на сайте липкое меню

Но, с помощью плагинов mu-plugins этого не надо делать после каждого обновления шаблона. Вам достаточно один раз создать файл с функциями и поместить его в папку /mu-plugins (предварительно вам нужно создать такую папку).

Содержимое обязательного плагина mu-plugins

<?php
/*
 Plugin Name: Название плагина
 Description: Описание плагина
 Author: Автор
 Author URI: Ссылка на сайт автора
 */

//---Код ваших функций----------- 

//----конец функции-------------
?>

Название файла плагина может быть любым, только на английском языке. Заполните служебную информацию о плагине в шапке файла, а потом между //— вставьте ваши функции.

Пример файла с функциями
Название файла — myfunctions.php

<?php
/*
 Plugin Name: Мои произвольные функции
 Description: Произвольные функции
 Author: Николай Пекарский
 Author URI: https://inwebpress.com
 */

// Код
//Отключение некоторых ссылок в меню консоли пользователя
add_action( 'wp_head', 'true_move_admin_bar' ); // на сайте

function my_admin_bar_render() {
	global $wp_admin_bar;
	$wp_admin_bar->remove_menu('comments');
	$wp_admin_bar->remove_menu('appearance');
	$wp_admin_bar->remove_menu('site-name');
	$wp_admin_bar->remove_menu('customize');
	$wp_admin_bar->remove_menu('wp-logo');
	$wp_admin_bar->remove_menu('new-content');
	$wp_admin_bar->remove_menu('updates');
	$wp_admin_bar->remove_menu('edit.php?post_type=cf7_style');  
}
add_action( 'wp_before_admin_bar_render', 'my_admin_bar_render' );

?>

Пример файла плагина с функциями подключения файлов локализации
Название файла — localization.php

<?php
/*
 Plugin Name: Подключение файлов локализации для темы
 Description: Файлы локализации от inwebpress.ru
 Author: Николай Пекарский
 Author URI: https://inwebpress.com
 */

// Код подключения
//--------------------russian localization---------------------------
load_theme_textdomain( 'osetin', get_template_directory() . '/languages' );
load_theme_textdomain( 'tgmpa', get_template_directory() . '/languages' );
load_theme_textdomain( 'sun', get_template_directory() . '/languages' );
load_theme_textdomain( 'moon', get_template_directory() . '/languages' );
load_theme_textdomain( 'pluto', get_template_directory() . '/languages' );
//-------------------russian localization---------------------------	  
?>

Используйте обязательные плагины mu-plugins и не захламляйте своими функциями файлы шаблона.

Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии