Создать свой виджет

Рубрика: Wordpress
Posted on: 15.12.2010 в 04:20 - 2 комментария - Visited 3344 times

WordPress в отличие от Joomla! Ужасно еб… эксцентричный. Если в Joomla! просто рай для разработчика, то в WP очень много непонятных одноразовый вообще нелогичных функций, к которым надо просто привыкнуть. Причём полезность их под большим вопросом.

К примеру в Joomla! можно опознать администратора по id=62, то в WP для этого есть целая отдельная функция is_admin(). Полезно? не очень, для меня…

Ну так к чему всё это, а к тому, что свой виджет можно создать только через написание нового плагина. То есть имеем общие — плугины, и как бы дополнения, и далее тип, вид и так далее. Все конечно видели и слышали про Hello Word’ы, но это полнейшая шняга, которой вообще редко где встретишь.

Я не буду вдаваться в подробности что и как, вот выкладываю болванку для создания своего виджета, который потом можно будет вытащить в виджетах своей темы и просто урадоваться, что так всё просто!


'new_widget',
'description'=>'This will be shown in widget description'
);
$this->WP_Widget ('new_widget', 'New Wigget title', $widget_ops);
}

//Это системные функции, которые отображают нечто, а именно
function widget ($args,$instance) {
extract ($args);
$title = apply_filters ('widget_title',
empty($instance['title']) ? 'Default Title' : $instance['title'],
$instance, $this->id_base
);
echo $before_widget;
echo $before_title.$title.$after_title;

//Что тут написано - будет собственно и показано в самом виджете. Ну по обычаю напишем
echo 'Hello Word!';

echo $after_widget;
}

//Это обновлялки заголовка нашего виджета, который появится на сайте.
function update ($new_instance, $old_instance) {
$instance = $old_instance;
$instance['title'] = strip_tags ($new_instance['title']);
return $instance;
}

function form ($instance) {
$instance = wp_parse_args ((array)$instance, array ('title'=>''));
$title = strip_tags ($instance['title']);
echo '

';
}
}
?>

2 комментария on “Создать свой виджет”

1
Дмитрий

А где определяются переменные $after_widget и $before_widget?

31.05.2014 on 13:02

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

Включите изображения, чтобы увидеть вопрос *