WordPress как на ладони

Плагин

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

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

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

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

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

Возможности плагинов безграничны, например:

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

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

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

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

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

Однако, чаще всего плагин состоит из нескольких файлов.

После установки 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
 * Author URI: http://ma.tt/
 * Version: 1.6
 */

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?»

--

Этот раздел неполный. Здесь только основные вещи связанные с созданием плагина.

3 комментария
    Войти