Membuat Widget HTML untuk Polylang Wordpress



Polylang adalah salah satu plugin Wordpress yang dapat digunakan untuk membantu membangun website multi-bahasa.

Menurut penulis, plugin ini bagus, meskipun hanya digunakan versi gratisnya.

Namun untuk menampilkan Widget yang dapat menyematkan kode HTML, saat tulisan ini dibuat, Widget Custom HTML bawaan Wordpress tidak dapat menampilkan pilihan bahasa.

Sehingga perlu dibuat widget yang dapat menampilkan pilihan bahasa, sehingga widget hanya akan muncul ketika website dilihat pada pilihan bahasa yang ditentukan pengunjung (user).

Berikut ini adalah kode widget, yang dapat disematkan di file functions.php theme Wordpress yang digunakan.

function uboiz_html_register_widget() {
	register_widget( 'uboiz_html_widget' );
}
add_action( 'widgets_init', 'uboiz_html_register_widget' );

class uboiz_html_widget extends WP_Widget {
	function __construct() {
		parent::__construct(
			// widget ID
			'uboiz_html_widget',
			// widget name
			__('Uboiz HTML Widget', 'uboiz_widget_domain'),
			// widget description
			array( 'description' => __( 'Uboiz HTML Experiment', 'uboiz_widget_domain' ), )
		);
	}
	
	public function widget($args,$instance) {
		$title = apply_filters('widget_title',$instance['title']);
		$codehtml = $instance['codehtml'];
		echo $args['before_widget'];
		//if title is present
		if (!empty($title))echo $args['before_title'].$title.$args['after_title'];
		//output
		echo __($codehtml,'uboiz_widget_domain');
		echo $args['after_widget'];
	}
	
	public function form($instance){
		if(isset($instance['title']))$title = $instance['title'];
		else $title = __('Default Title','uboiz_widget_domain');
		if(isset($instance['codehtml']))$codehtml = $instance['codehtml'];
		else $codehtml = __('<p>Hello World!</p>','uboiz_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);?>" />
		<label for="<?php echo $this->get_field_id( 'codehtml' ); ?>"><?php _e( 'Code HTML:' ); ?></label>
		<textarea class="widefat" id="<?php echo $this->get_field_id( 'codehtml' ); ?>" name="<?php echo $this->get_field_name('codehtml'); ?>"><?php echo esc_attr($codehtml);?></textarea>
		</p>
		<?php
	}
	
	public function update($new_instance,$old_instance){
		$instance = array();
		$instance['title'] = (!empty( $new_instance['title']))?strip_tags($new_instance['title']):'';
		$instance['codehtml'] = (!empty( $new_instance['codehtml']))?$new_instance['codehtml']:'';
		return $instance;
	}
}

Perlu diingat, kode ini akan hilang dan disematkan ulang, jika theme yang digunakan, diupgrade ke versi terbaru.

Komentar



Postingan populer dari blog ini

Kumpulan Source Code Greenfoot

Game TicTacToe dengan Greenfoot

Honeycomb Style Wallpaper dengan HTML5 Canvas

Cara Menentukan Arah Kiblat Menggunakan Google Maps

Cara Membuat Halaman HTML Sederhana

Ganti Kartu ATM BNI yang Rusak

Mencoba Submit Theme di Wordpress.org

Melihat Alamat Berbentuk QR Code di Undangan Pernikahan

Contoh Countdown Timer untuk Halaman Web dengan Javascript

Proyek Rakyat atau Menghamburkan Dana Kantor