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

Kaidah Baku untuk Konsistensi Data (PT, Tbk, Pty., & Ltd.)

Game TicTacToe dengan Greenfoot

Honeycomb Style Wallpaper dengan HTML5 Canvas

Eliminasi Gauss-Jordan untuk Invers Matrix dengan Java

Afiliasi Shopee Tanpa Wajah dan Tanpa Beli Sampel Bermodal AI

Apps Script untuk Membuat Banyak Folder di Google Drive

Perbedaan Sudut Pandang Dosen dan Karyawannya

Membuat Kalkulator Interpolasi Bilinear dengan Javascript

Robot Forex Martingale Gratis

Algorithma FPB dan KPK dengan Javascript