...
class sajat_widget extends WP_Widget {
//Ide kerülnek a függvények
}
A következőkben áttekintjük milyen függvényeket kell létrehoznunk.
===== Konstruktor hozzáadása =====
A konstruktorban állíthatjuk be a widget nevét és leírását, amit
a beállításoknál látunk viszont.
function __construct() {
parent::__construct(
'sajat_widget',
__('Példa Widget', 'sajat_widget_domain'),
array('description' => __('szit.hu Példa Widget',
'sajat_widget_domain'), )
);
}
===== widget() hozzáadása =====
A widget() függvény meghatározza az egyéni widget megjelenítését.
public function widget($args, $instance) {
$title = apply_filters('widget_title', $instance['title']);
echo $args['before_widget'];
if( !empty($title)) {
echo $args['before_title'] . $title . $args['after_title'];
}
echo __('Üdv a szit.hu üdvözlet', 'sajat_widget_domain');
echo $args['after_widget'];
}
===== Űrlap hozzáadása =====
Szintén a beállításoknál a widget beállítási lehetőségét adjuk meg.
Ezt a form() függvényben végezzük el, egy szöveget fogunk bekérni,
egy egy alapértelmezett szöveget is megadunk.
public function form($instance) {
if(isset($instance['title'])) {
$title = $instance['title'];
}else {
$title = __('Alapértelmezett szöveg', 'sajat_widget_domain');
}
?>
===== Frissítés hozzáadása =====
Frissíti a widget-t, amikor frissülnek a beállítások.
public function update($new_instance, $old_instance) {
$instance = array();
$instance['title'] = (!empty($new_instance['title'])) ?
strip_tags($new_instance['title']) : '';
return $instance;
}
===== Az egyedi widget regisztrációja =====
Az egyedi widgetünket regisztrálni kell a WordPress-ben.
Ezt szintén a function.php függvényben kell megtenni, de már
osztályon kívül.
function sajat_register_widget() {
register_widget('sajat_widget');
}
add_action('widgets_init', 'sajat_register_widget');
===== Egyben =====
__('szit.hu Példa Widget',
'sajat_widget_domain'), )
);
}
public function widget($args, $instance) {
$title = apply_filters('widget_title', $instance['title']);
echo $args['before_widget'];
if( !empty($title)) {
echo $args['before_title'] . $title . $args['after_title'];
}
echo __('Üdv a szit.hu üdvözlet', 'sajat_widget_domain');
echo $args['after_widget'];
}
public function form($instance) {
if(isset($instance['title'])) {
$title = $instance['title'];
}else {
$title = __('Alapértelmezett szöveg', 'sajat_widget_domain');
}
?>
A fentiek szerint, mentsük a functions.php fájlba, majd
nézzük meg a widgeteket. Megtaláljuk a sajátunkat.
===== Linkek =====
* https://developer.wordpress.org/themes/functionality/widgets/ (2021)