WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru Хостинг, VPS/VDS и отдельные сервера только на SSD дисках. 7 дней бесплатного тестирования.

Создание Плагинов

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

WordPress состоит из трех составляющих: Ядро, Темы, Плагины. Это учебник расскажет о плагинах и коснется примерно таких тем:

  • Как создать плагин (заголовки плагина).
  • Наиболее успешные практики безопасности.
  • Инструменты, которые можно использовать для создания плагина.
  • Использование встроенных в WordPress API.
  • Правильное удаление плагина.
  • Перевод (локализация) плагина.
  • и т.д.

Раздел создается на основе официального руководства по плагинам. Здесь будет вольный перевод + личный опыт.

Что такое плагин?

Это дополнение, которое расширяет функционал WordPress т.е. создает дополнительный функционал поверх того, что уже предлагает WordPress. WordPress создан так, чтобы его можно было расширять плагинами. Плагины WordPress состоят из кода PHP, папок, файлов CSS и JavaScript и любых других файлов.

Например, можно написать плагин, который создает новое поле для комментариев и записывает его данные в таблицу wp_commentmeta. Или с помощью записей произвольных типов, можно написать плагин тикет-системы с уведомлениями по электронной почте, статусами тикета и т.д. Возможности плагинов безграничны!

В простейшем случае плагин WordPress является одним файлом PHP со специальными комментариями-заголовками.

Зачем нужны плагины?

Плагины позволяют расширять функционал WordPress без изменения кода его ядра.

Существует одно важное правило в разработке WordPress - не касайтесь ядра. Это означает, что нельзя редактировать файлы самого WordPress, когда нужно что-то изменить или добавить. Это важно потому что, когда WordPress обновляется до новой версии, он перезаписывает все имеющиеся файлы и любые изменения будут утеряны. Поэтому любая функциональность, должна быть добавлена через плагины, MU плагины или через тему (шаблон).

Из чего состоит плагин?

Большинство плагинов состоит из многих файлов, но в сущности плагину достаточно одного файла! Минимум что нужно для плагина: правильный заголовок в этом файле и код, который будет что-либо делать.

В комплекте WordPress при его установке, в папке плагинов находится демонстрационный плагин: Hello Dolly. Этот плагин состоит из одного файла /plugins/hello-dolly/hello.php. «Hello Dolly» не делает ничего полезного, а просто показывает слова из известной песни в уведомлениях админки WordPress.

Вот его код:

/*
 * Plugin Name: Hello Dolly
 * Plugin URI: https://wordpress.org/plugins/hello-dolly/
 * Description: This is not just a plugin, it symbolizes the hope and enthusiasm of an entire generation summed up in two words sung most famously by Louis Armstrong: Hello, Dolly. When activated you will randomly see a lyric from <cite>Hello, Dolly</cite> in the upper right of your admin screen on every page.
 * Author: Matt Mullenweg
 * Version: 1.6
 * Author URI: http://ma.tt/
 */

add_action( 'admin_notices', 'hello_dolly' );
add_action( 'admin_head', 'dolly_css' );

function hello_dolly_get_lyric() {
	/** These are the lyrics to Hello Dolly */
	$lyrics = "Hello, Dolly
Well, hello, Dolly
It's so nice to have you back where you belong
You're lookin' swell, Dolly
I can tell, Dolly
You're still glowin', you're still crowin'
You're still goin' strong
We feel the room swayin'
While the band's playin'
One of your old favourite songs from way back when
So, take her wrap, fellas
Find her an empty lap, fellas
Dolly'll never go away again
Hello, Dolly
Well, hello, Dolly
It's so nice to have you back where you belong
You're lookin' swell, Dolly
I can tell, Dolly
You're still glowin', you're still crowin'
You're still goin' strong
We feel the room swayin'
While the band's playin'
One of your old favourite songs from way back when
Golly, gee, fellas
Find her a vacant knee, fellas
Dolly'll never go away
Dolly'll never go away
Dolly'll never go away again";

	// Here we split it into lines
	$lyrics = explode( "\n", $lyrics );

	// And then randomly choose a line
	return wptexturize( $lyrics[ mt_rand( 0, count( $lyrics ) - 1 ) ] );
}

// This just echoes the chosen line, we'll position it later
function hello_dolly() {
	$chosen = hello_dolly_get_lyric();
	echo "<p id='dolly'>$chosen</p>";
}

// Now we set that function up to execute when the admin_notices action is called

// We need some CSS to position the paragraph
function dolly_css() {
	// This makes sure that the positioning is also good for right-to-left languages
	$x = is_rtl() ? 'left' : 'right';

	echo "
	<style type='text/css'>
	#dolly {
		float: $x;
		padding-$x: 15px;
		padding-top: 5px;       
		margin: 0;
		font-size: 11px;
	}
	</style>
	";
}

Нагрузка плагина

Не верьте, когда где-то пишут что плагины нагружают систему - это не так!

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

Миф, что плагины нагружают систему родился, потому что для WordPress очень много плагинов написанных неграмотно и без должного подхода. Поэтому их код создает лишнюю нагрузку. Но не значит, что нужно бояться всех плагинов! Нужно пользоваться плагинами от опытных разработчиков.

Подробнее про такой миф, читайте в заметке «Тормозят ли плагины скорость работы WordPress?»

Благодарность

Евгению за большой объем переводов вышеупомянутого руководства, которое когда-то было на его сайте web2033.com. Правда его переводы меня в 70% не устроили, пришлось переделывать: начать начал, но добить сил не хватает sad

Этот раздел в процессе разработки... И вообще, я его начал писать и что-то забросил, неинтересное бессмысленное занятие получается. Но это дело я продолжу, обязательно, когда-нибудь...

1 коммент
Здравствуйте, !     Войти . Зарегистрироваться