Создать плагин для WP — просто!
Вот так всегда, когда не знаешь какого-либо предмета, кажется, что там всё жутко сложно и непонятно. И, как всегда, пока я не сталкивался с проблемой модификации WP на уровне более глубоком, чем редактирование тем, я даж и не думал ковыряться в деле написания плагинов и вообще — ковыряния в движке.
А когда появилась реальная нужда — пришлось исследовать вопрос и оказалось, что там сё просто как валенок :)
Грубо говоря — создается php-файл в папке plugins, в начале файла пишется комментарий по вот такому шаблону:
/*
Plugin Name: Show Near Posts
Plugin URI: http://leksus.info/
Description: Плагин, просто Плагин.
Author: leksus
Version: 1.0
Author URI: http://leksus.info/
*/
Главным тут является название плагина, которое будет отображаться в админке WP, остальное по вкусу.
После него пишутся любые функции, которые нам могут понадобиться. И не забыть в админке активировать свой плагин.
Лучше показать всё на примерах.
Скажем, хотим мы сделать выборку определенную.. ну, к примеру, все аттачменты, в дескрипшене которых есть определенное слово. И вывести ссылки на них в сайдбаре.
function get_att_descr ($word) {
//доступ к бд
global $wpdb;
//запрос
$q = «select post_title, guid from «.$wpdb->posts.» where post_type = ‘attachment’ and post_content like ‘%».$word.»%’»;
//сохраняем результаты в переменную
$res = $wpdb->get_results($q);
//если нет результатов — возвращаем false
if (count($res) == 0) return false;
$echo_res = »;
//формируем список ссылок на аттачи с определенным словом в описании
foreach ($res as $attach) $echo_res .= ‘<li><a href=\».$attach->guid.’\'>’.$attach->post_title.’</a></li>’;
return $echo_res;
}
После активации этого плагина, функция get_att_descr будет доступна в любом месте шаблона, то есть, можно её вызвать в том же сайдбаре:
if ($echo_values = get_att_descr ("e;порно"e;)) echo $echo_values;
Это мы добавили свою пользовательскую функцию, которую впоследствии использовали.
А если нам надо изменить вид поста при выводе (или при постинге)? Для этого существуют фильтры. По сути, всё тоже самое, тока функция, которую мы написали, «вклинивается» в процесс вывода (или постинга), что-нить делает с полученными данными (или как-то реагирует в зависимости от них), и отправляет данные дальше.
К примеру, нам надо при выводе заменять слово «хуй» на звёздочки — ***.
Пишем простейшую функцию.
function no_mat ($content) {
$content = preg_replace (‘/хуй/’, ‘***’, $content);
return $content;
}
А потом ставим фильтр:
add_filter (‘the_content’, ‘no_mat’);
add_filter: первый аргумент — к какой функции мы привязываем наш фильтр, второй — собственно, сама функция. Всё, что функция the_content возвращает, она отдает функции no_mat, которая, в свою очередь, после обработки, отдаёт содержимое обратно.
Помимо add_filter, есть еще другие варианты вклиниваться в процессы WP.
Всё, что написано выше, справедливо для написания плагина для своих нужд. Если писать плагин для распространения, придётся еще писать функции настройки плагина для отображения в админке (не каждый может поменять переменную в php-файле плагина), возможно, добавлять дополнительные файлы, делать возможность подключения переводов плагина и прочая чешуйня.
Суровым программерам такие излишества не нужны :)
Про написание плагинов намного более подробно — на сайте WP: http://codex.wordpress.org/Plugin_Resources

Неплохой блог, и материал, тоже ничего :)
[Ответить]
как раз искал про плагины инфу)
[Ответить]
Спасибо за совет!
[Ответить]
Specific section belonging to the survey pertaining so as to my language all through exactly which marketing information is also shared showed that particular 99% using respondents used each single language to find the most important majority relating to instance spent in the web.
What’s more all particular pressure is very much being put on an internet connection exactly which might be performing excellent below its advertised speed, something I won’t go interested in of course within the continues to be per bone between contention towards quite the best time ok.
Regarding marketing information about my work located in other fields, feel free returning to check my cutting edge platform when it comes to interesting topics about ethics as well as philosophy together with know-how additionally ideas of various technologies!
[Ответить]
Интересная информация.
Как раз начал копать тему написания плагинов для WP
Будет с чего начать
[Ответить]
leksus Reply:
марта 5, 2012 at 12:58
Малацца, проспамил :)
[Ответить]