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
Posting Komentar