de-Novembre

Membuat Plugin WordPress (part 3)

Posted on: February 3, 2010

Membuat Panel Administrasi di Back-end WordPress

Sekarang plugin Anda sudah tercantum di list plugin di panel back-end wordpress Anda, dengan demikian wordpress sudah mengetahui dan mengenali plugin yang Anda buat. Namun plugin Anda belum bisa berbuat apa-apa, untuk membuatnya berfungsi silahkan ikuti langkah selanjutnya berikut ini.

  1. Buatlah sebuah fungsi apasaja dengan maksud memberitahu kepada wordpress bahwa fungsi yang pertama dipanggil adalah fungsi tersebut, fungsi ini biasanya berisi perintah untuk menambahkan menu pada panel back-end wordpress Anda, yang selanjutnya akan berfungsi untuk pengaturan plugin Anda.
  2. Untuk membuat fungsi Anda di load secara Automatis saat administrator masuk ke panel Back-end Anda adalah dengan menggunakan baris script berikut :
    <?
    function add_new_admin_menu() {
     add_options_page("RPG-Slideshow", "RPG-Slideshow", 1, "rpg-slideshow", "rpg_slideshow");
    }
    add_action('admin_menu', 'add_new_admin_menu');
    ?>
    
  3. fungsi “add_action” adalah fungsi yang memberitahukan kepada panel back-end wordpress Anda untuk secara automatis meload fungsi “add_new_admin_menu”
  4. Maka fungsi “add_new_admin_menu” pun terload secara automatis.
  5. Di dalam fungsi “add_new_admin_menu” tersebut tersimpan perintah untuk menambahkan options page yang berisi forms / interface untuk pengaturan plugin Anda yaitu baris script : “add_options_page(“RPG-Slideshow”, “RPG-Slideshow”, 1, “rpg-slideshow”, “rpg_slideshow”);” Anda dengan bebas menganti penama’an pada nama-nama diatas sesuai kebutuhan. Hal yang perlu diperhatikan adalah parameter ke 3 dan ke 5, parameter ke 3 harus berisi angka 1 dan parameter ke 5 akan di bahas pada point berikutnya (6)
  6. perhatikan parameter ke 5 itu adalah pemanggilan nama fungsi lain yang akan berisi pemanggilan forms pengaturan plugin Anda.
  7. Kita buat pula fungsi yang Akan dipanggil point no 5:
    <?
    function rpg_slideshow(){
     global $wpdb;
     $action = (isset($_GET['action'])?$_GET['action']:$_GET['action']);
     $rpg_id= (isset($_GET['rpg_id'])?$_GET['rpg_id']:$_GET['rpg_id']);
    
     switch($action){
     default:
     include('rpg-list-slideshow.php');
     break;
    
     case "add":
     include('rpg-add-edit-slideshow.php');
     break;
    
     case "edit":
     include('rpg-add-edit-slideshow.php');
     break;
     }
    }
    ?>
    
  8. Perhatikan pemanggilan include pada file tersebut, itu merupakan interface /forms untuk pengaturan, ini biasanya berisi file yang berformat html.

Berikut ini adalah tampilan lengkap code file tersebut :

<?php
/*
Plugin Name: RPG Slideshow
Plugin URI: http://www.princeoffrog.wordpress.com
Description: The Custome Slidshow Plugins
Author: Rini Puspita Galih
Version: 1.0
Author URI: http://www.princeoffrog.wordpress.com
*/
global $wpdb;
define('RPG_TABLE_NAME', $wpdb->prefix . 'rpg_slideshow');
define('RPG_PATH', ABSPATH . 'wp-content/plugins/rpg-slideshow');
define('RPG_IMAGES_PATH', get_bloginfo('wpurl'). '/wp-content/plugins/rpg-slideshow');
require_once(ABSPATH . '/wp-includes/pluggable.php');

function add_new_admin_menu() {
 add_options_page("RPG-Slideshow", "RPG-Slideshow", 1, "rpg-slideshow", "rpg_slideshow");
}

function rpg_slideshow(){
 global $wpdb;
 $action = (isset($_GET['action'])?$_GET['action']:$_GET['action']);
 $rpg_id= (isset($_GET['rpg_id'])?$_GET['rpg_id']:$_GET['rpg_id']);

 switch($action){
 default:
 include('rpg-list-slideshow.php');
 break;

 case "add":
 include('rpg-add-edit-slideshow.php');
 break;

 case "edit":
 include('rpg-add-edit-slideshow.php');
 break;
 }
}

function install(){
 global $wpdb;
 if ( $wpdb->get_var('SHOW TABLES LIKE "' . RPG_TABLE_NAME . '"') != RPG_TABLE_NAME )
 {
 $sql = "CREATE TABLE IF NOT EXISTS `". RPG_TABLE_NAME . "` (";
 $sql .= "`rpg_slideshow_id` int(11) unsigned NOT NULL auto_increment,";
 $sql .= "`rpg_slideshow_title` varchar(20) NOT NULL default '0',";
 $sql .= "`rpg_slideshow_description` varchar(100) default NULL,";
 $sql .= "`rpg_slideshow_images` varchar(250) NOT NULL,";
 $sql .= "`rpg_slideshow_url` varchar(250) default NULL,";
 $sql .= "PRIMARY KEY  (`rpg_slideshow_id`)";
 $sql .= ") ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;";
 $wpdb->query($sql);
 }
}

function uninstall(){
 global $wpdb;
 $sql = "DROP TABLE `". RPG_TABLE_NAME . "`;";
 $wpdb->query($sql);
}

register_activation_hook(__FILE__, 'install');
register_deactivation_hook(__FILE__, 'uninstall');

add_action('admin_menu', 'add_new_admin_menu');
?>

Advertisements
Tags: ,

10 Responses to "Membuat Plugin WordPress (part 3)"

ditunggu kelanjutan tutorialnya mas 🙂

salam kenal

wah suatu kehormatan bisa kenal dengan mas, yang sudah senior hehe..
Saya kira tutorial diatas sudah habis…
Tapi mungkin mas belum ngerti yah?
disebelah mananya ya?
ada kritik n saran?
btw: web mas juga bagus, mantab …
hehe

Terima kasih atas tulisannya. Saya mau tanya kalo pada admin page, gimana caranya untuk simpan kedatabase ? makasih sebelumnya

oh gampang tp sebelumnya harus belajar dl database di wp dulu http://codex.wordpress.org/Function_Reference/wpdb_Class jangan lupa pake global $wpdb dulu. kl mau lebih jelas bongkar aja code plugin ini http://www.ziddu.com/download/13062959/free-event-banner.zip.html

trims,
sangat baik untuk pembelajaran bagi pemula seperti saya…

mas ada tutorial lanjutannya gak? masih belum mudeng nie

nah disebelah mana yang belum mengertinya mas, mungkin bisa saya jelaskan…

add_options_page(“RPG-Slideshow”, “RPG-Slideshow”, 1, “rpg-slideshow”, “rpg_slideshow”);

fungsi “1” itu apa mas?
apakah hak ases user atau apa?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: