Несколько лет назад, когда я только начинал создавать плагины для 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 файл с массивом, и включить его в плагин.

Второй: использовать определенную таблицу базы данных.

Третий: получить данные от удаленного сервера (немного больше возможностей в разработке).

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

Источник: WP.tutsplus.com

Вам понравился материал?

Добавить комментарий

Такой e-mail уже зарегистрирован. Воспользуйтесь формой входа или введите другой.

Вы ввели некорректные логин или пароль

Извините, для комментирования необходимо войти.

4 комментария

сначала новые
по рейтингу сначала новые по хронологии

Попробуйте вот этот плагин: XmasB Quotes. Лично я им и пользуюсь.

зашел за плагином - ушел без плагина...

Сергей Янг

хотелось бы увидеть его в действии, для начала ))

По факту плагина нет. Куча рассуждений, 0 файлов.