Несколько лет назад, когда я только начинал создавать плагины для WordPress, я столкнулся с одним очень интересным небольшим упражнением, которое научило меня основам создания плагинов. Я начал с очень простой идеи: создать удобный маленький плагин, который случайным образом генерирует цитату для описания текущей темы. Сегодня я вернусь к плагину, который помог мне, проведя вас, друзья, по процессу его создания.
Минимальные знания, необходимые для этого руководства – базовые знания PHP (это предназначено для начинающих, которые хотят заняться разработкой плагинов).
Цель этого урока: создать плагин, который будет случайным образом генерировать цитату при каждой перезагрузке страницы. После того, как плагин будет активирован в разделе Плагины, он будет тихонько работать. Он не создает никаких лишних файлов, так что нам не нужна будет процедура деинсталляции плагина.
Шаг 1. Базовая информация о плагине
Следующие строки кода сообщают WordPress о том, что вы создаете – "плагин". В принципе, все, что WordPress требует - имя плагина. Порядок строк не важен, но вы заметите много знакомого в этой "шапке", если вы когда-либо создавали шаблон страницы или тему. Файл должен быть в кодировке UTF-8.
/* Plugin Name: Adam's random quote Version: 0.1 Plugin URI: http://burucs.com Description: Replaces the site's description with a random quote Author: Adam Burucs Author URI: http://burucs.com */
Шаг 2. Функция генерации
Наша первая функциональная часть кода – функция генерации. Она состоит из локального одномерного массива, заполненного разнообразными цитатами, и в конце мы случайным образом выбираем цитату. Для этого мы используем встроенную PHP функцию rand. Обратите внимание, что начальное и последнее значение входит в диапазон для генерирования.
В соответствии с подробными стандартами разработки WordPress, мы должны использовать следующее правило в названиях: две маленьких буквы-монограммы автора и аббревиатура имени плагина.
function ab_arq_generate() { $quotes = array( 'Silence is golden.', 'Nothing is what it looks like.', 'Make everything right!', 'Better late than never.', 'Seeing is believing.' ); return $quotes[rand(0, count($quotes)-1)]; }
Шаг 3. Функция, которая заменяет стандартное описание цитатой
В этом блоке мы используем вспомогательную функцию, которая удаляет то, что было записано перед этим функцией ядра.
function ab_arq_change_bloginfo( $text, $show ) { if( 'description' == $show ) { $text = ab_arq_generate(); } return $text; }
Шаг 4. Использование системы фильтров
Система фильтров – важный принцип в фундаментальном мире WordPress. Фильтры – это функции, за которые ваш плагин может зацепиться, чтобы изменить данные. В нашем случае с помощью этой возможности мы переопределяем стандартное описание текущей темы. Нам нужно использовать функцию bloginfo.
add_filter( 'bloginfo', 'ab_arq_change_bloginfo', 10, 2 );
Шаг 5. Полный код
Вот конечный результат того, что мы делали в этом простом уроке.
/* Plugin Name: Adam's random quote Version: 0.1 Plugin URI: http://burucs.com Description: Replaces the site's description with a random quote Author: Adam Burucs Author URI: http://burucs.com */ function ab_arq_generate() { $quotes = array( 'Silence is golden.', 'Nothing is what it looks like.', 'Make everything right!', 'Better late than never.', 'Seeing is believing.' ); return $quotes[rand(0, count($quotes)-1)]; } function ab_arq_change_bloginfo( $text, $show ) { if( 'description' == $show ) { $text = ab_arq_generate(); } return $text; } add_filter( 'bloginfo', 'ab_arq_change_bloginfo', 10, 2 );
Шаг 6. Бонусный совет
Я показал вам основы для создания этого плагина, но вы можете расширить его разными способами, если захотите.
Например: что если нам нужно будет больше цитат? Мы можем выбрать один из вариантов.
Первый: мы можем создать дополнительный php файл с массивом, и включить его в плагин.
Второй: использовать определенную таблицу базы данных.
Третий: получить данные от удаленного сервера (немного больше возможностей в разработке).
Обратите внимание, что если вы выберете вариант с отдельной таблицей, вам нужно создать хорошую, отдельную функцию удаления в вашем плагине.
Комментарии к записи: 4
По факту плагина нет. Куча рассуждений, 0 файлов.
хотелось бы увидеть его в действии, для начала ))
зашел за плагином — ушел без плагина…
Попробуйте вот этот плагин: XmasB Quotes. Лично я им и пользуюсь.