Membuat Widget pada WordPress

 

Sebelum melakukan pembuatan Widget untuk ditambahkan ke Wordpress, backup dulu Wordpress tersebut, Baca artikel cara Backup WordPress jika belum tahu cara backup. artikel tersebut menjelaskan cara backup Wordpress pada hosting. 

Sebelum membuat widget WordPress ada beberapa hal yang perlu diperhatikan. Pertama-tama, pembuatan widget dapat dilakukan pada plugin kustom. Kemudian dapat menambahkan kode widget kustom ke dalam file functions.php dari template yang digunakan.

WordPress telah menyediakan Widgets API untuk memudahkan membuat widget kustom. Untuk membuat widget kustom, dapat menggunakan class WP Widget. Class ini memiliki 20 fungsi yang dapat digunakan.

Supaya widget dapat berfungsi, berikut ini adalah 4 function untuk persyaratan minimal yang harus dipenuhi.

  • _construct(): function constructor
  • widget(): output dari widget
  • form(): menentukan pengaturan widget pada dashboard
  • update(): update pengaturan widget

Berikut adalah cara menambahkan Widget pada WordPress :

Login ke Wordpress, isikan user dan password

2. Masuk ke Dashboard Wordpresss


3. Menambahkan Script perintah 

Buka file functions.php,  lalu buat class dan tambahkan script pada class tersebut seperti dibawah :

file : functions.php
class xyz_widget extends WP_Widget {
//Masukkan function di sini
}

lalu buat 4 function yang diharuskan dalam membuat widget seperti yang telah dibahas diatas 

Implementasi 4 Fungsi  : digunakan untuk menentukan ID, nama dari widget, serta deskripsi

function __construct() {

parent::__construct(

// ID widget

'xyz_widget',

// nama widget

__('Widget PT XYZ', ' xyz_widget_domain'),

// deskripsi widget

array( 'description' => __( 'Belajar Widget PT XYZ', 'xyz_widget_domain' ), )

);

}


Tampilan Widget  : untuk mengatur tampilan widget

public function widget( $args, $instance ) {

$title = apply_filters( 'widget_title', $instance['title'] );

echo $args['before_widget'];

//jika ada judul

if ( ! empty( $title ) )

echo $args['before_title'] . $title . $args['after_title'];

//output

echo __( 'Selamat Datang di Blog PT. XYZ', 'xyz_widget_domain' );

echo $args['after_widget'];

}


Back-End : untuk mengatur back-end dari widget

public function form( $instance ) {

if ( isset( $instance[ 'title' ] ) )

$title = $instance[ 'title' ];

else

$title = __( 'Default Title', 'xyz_widget_domain' );

?>

<p>

<label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Title:' ); ?></label>

<input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" type="text" value="<?php echo esc_attr( $title ); ?>" />

</p>

<?php

}


Function Update : untuk memperbarui widget setiap ada perubahan pada pengaturan

public function update( $new_instance, $old_instance ) {

$instance = array();

$instance['title'] = ( ! empty( $new_instance['title'] ) ) ? strip_tags( $new_instance['title'] ) : '';

return $instance;

}


Daftarkan Widget : untuk mendaftarkan widget pada WordPress

Letakkan kode di bawah ini pada bagian luar dari class xyz_widget atau pada bagian atasnya.

function xyz_register_widget() {

register_widget( 'xyz_widget' );

}

add_action( 'widgets_init', 'xyz_register_widget' );



Jadi kode komplit dari file functions.php adalah sebagai berikut :

function xyz_register_widget() {

register_widget( 'xyz_widget' );

}

add_action( 'widgets_init', 'xyz_register_widget' );

class niagahoster_widget extends WP_Widget {

function __construct() {

parent::__construct(

// ID widget

'xyz_widget',

// nama widget

__('Widget PT. XYZ', ' xyz_widget_domain'),

// deskripsi widget

array( 'description' => __( 'Belajar Widget PT.XYZ', 'xyz_widget_domain' ), )

);

}

public function widget( $args, $instance ) {

$title = apply_filters( 'widget_title', $instance['title'] );

echo $args['before_widget'];

//if title is present

if ( ! empty( $title ) )

echo $args['before_title'] . $title . $args['after_title'];

//output

echo __( 'Selamat Datang di Blog PT.XYZ', 'xyz_widget_domain' );

echo $args['after_widget'];

}

public function form( $instance ) {

if ( isset( $instance[ 'title' ] ) )

$title = $instance[ 'title' ];

else

$title = __( 'Default Title', 'xyz_widget_domain' );

?>

<p>

<label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Title:' ); ?></label>

<input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" type="text" value="<?php echo esc_attr( $title ); ?>" />

</p>

<?php

}


public function update( $new_instance, $old_instance ) {

$instance = array();

$instance['title'] = ( ! empty( $new_instance['title'] ) ) ? strip_tags( $new_instance['title'] ) : '';

return $instance;

}

}


Penambahkan kode Script tersebut dapat langsung dilakukan pada website melalui FTP client atau editor WordPress melalui bagian functions.php dari template aktif yang digunakan.



4. Menambahkan Widget ke WordPress 

Pilih menu Appearance > Widgets.maka akan terlihat widget kustom yang telah dibuat.


kemudian lakukan drag pada lokasi yang diinginkan, misalkan sidebar. Lihat layout seperti gambar di bawah ini