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

Apps Script untuk Cetak Sertifikat

Kumpulan Source Code Greenfoot

Menyembunyikan Failed Load Images di Blogger

Kode Greenfoot Game Flappy Bird

Algorithma Bilangan Prima dengan Javascript

Checking Data yang Belum Dimasukkan dalam Daftar Menggunakan Query Google Sheet

Kebodohan Karyawan Menyalahkan Sistem

Algorithma Coretan Abstrak dengan HTML5 Canvas

Mencoba Submit Theme di Wordpress.org

Generate Karakter Acak dan Menempatkannya di Sel Google Sheets dengan Apps Script