WordPress как на ладони
rgbcode is looking for WordPress developers.

Плагин

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.

Вот его код:

GitHub
<?php
/**
 * @package Hello_Dolly
 * @version 1.7.2
 */
/*
Plugin Name: Hello Dolly
Plugin URI: http://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.7.2
Author URI: http://ma.tt/
*/

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
I feel the room swayin'
While the band's playin'
One of our old favorite songs from way back when
So, take her wrap, fellas
Dolly, 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
I feel the room swayin'
While the band's playin'
One of our old favorite songs from way back when
So, golly, gee, fellas
Have a little faith in me, fellas
Dolly, never go away
Promise, you'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();
	$lang   = '';
	if ( 'en_' !== substr( get_user_locale(), 0, 3 ) ) {
		$lang = ' lang="en"';
	}

	printf(
		'<p id="dolly"><span class="screen-reader-text">%s </span><span dir="ltr"%s>%s</span></p>',
		__( 'Quote from Hello Dolly song, by Jerry Herman:', 'hello-dolly' ),
		$lang,
		$chosen
	);
}

// Now we set that function up to execute when the admin_notices action is called.
add_action( 'admin_notices', 'hello_dolly' );

// We need some CSS to position the paragraph.
function dolly_css() {
	echo "
	<style type='text/css'>
	#dolly {
		float: right;
		padding: 5px 10px;
		margin: 0;
		font-size: 12px;
		line-height: 1.6666;
	}
	.rtl #dolly {
		float: left;
	}
	.block-editor-page #dolly {
		display: none;
	}
	@media screen and (max-width: 782px) {
		#dolly,
		.rtl #dolly {
			float: none;
			padding-left: 0;
			padding-right: 0;
		}
	}
	</style>
	";
}

add_action( 'admin_head', 'dolly_css' );

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

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

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

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

Техническое объяснение почему плагины не нагружают систему, читайте в заметке: «Тормозят ли плагины скорость работы WordPress?»

--

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

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