Tôi đã bắt đầu ở cùng một nơi với bạn một thời gian và đã tạo ra một cái gì đó tương tự. Đây là những gì tôi nghĩ bạn cần biết.
1) Tìm ra cách tạo thế giới xin chào cơ bản trước hết. Một plugin đơn giản sẽ bao gồm một vài bình luận ở đầu tệp PHP được thả vào thư mục plugin của bạn. Lưu ý biến gọi lớp mà nó di chuyển. Trình xây dựng của lớp gọi add_top_level_menu, khi điều này được nhấp vào (xem biến hàm $), hàm display_page () sẽ được khởi động để bắt đầu xây dựng trang của bạn.
<?php
/*
Plugin Name: Your plugin name
Description: Description
Version: 1.0
Author: Your Name
Author URI: http://yourweb.com
*/
$myplugvariable = new yourpluginname();
class yourpluginname
{
function __construct(){
add_action( 'admin_menu', array( &$this, 'add_top_level_menu' ) );
}
function add_admin_scripts(){
//adds javavascript files for this plugin.
wp_enqueue_script('my-script-name', WP_PLUGIN_URL . '/' . dirname(plugin_basename(__FILE__)) . '/js/javascript.js', array('jquery'), '1.0');
wp_localize_script('my-script-name', 'MyScriptAjax', array('ajaxUrl' => admin_url('admin-ajax.php')));
}
function add_top_level_menu()
{
// Settings for the function call below
$page_title = 'Plugin Name';
$menu_title = 'Plugin Name';
$menu_slug = 'plugin-name';
$function = array( &$this, 'display_page' );
$icon_url = NULL;
$position = '';
// Creates a top level admin menu - this kicks off the 'display_page()' function to build the page
$page = add_menu_page($page_title, $menu_title, $this->capability, $menu_slug, $function, $icon_url, 10);
// Adds an additional sub menu page to the above menu - if we add this, we end up with 2 sub menu pages (the main pages is then in sub menu. But if we omit this, we have no sub menu
// This has been left in incase we want to add an additional page here soon
//add_submenu_page( $menu_slug, $page_title, $page_title, $capability, $menu_slug . '_sub_menu_page', $function );
}
function display_page()
{
if (!current_user_can($this->capability ))
wp_die(__('You do not have sufficient permissions to access this page.'));
//here comes the HTML to build the page in the admin.
echo('HELLO WORLD');
}
}
?>
2) Khi bạn đã tạo các chức năng nội bộ để trả về dữ liệu của mình, bất cứ điều gì có thể. (sử dụng các hàm dữ liệu wordpress toàn cầu, ví dụ $ wpdb-> get_results ($ sql).
3) AJAX bên trong quản trị viên hơi khác so với cách bạn thường sử dụng. Tất cả các cuộc gọi AJAX của wordpress móc vào admin-ajax.php. Tôi tìm thấy cái này: http://www.garyc40.com/2010/03/5-tips-for-USE-ajax-in-wordpress/#js-global khá giỏi trong việc giải thích mọi thứ.
4) Nếu bạn đang tạo bảng: một cái gì đó như dưới đây sẽ làm việc cho bạn. tìm kiếm dbDelta trong codex.
function plugin_install()
{
global $wpdb;
$table_name_prefix = "plugin-name";
$table_name = $wpdb->prefix . "plugin_name";
$sql = "CREATE TABLE " . $table_name . " (
id mediumint(9) NOT NULL AUTO_INCREMENT,
post_id mediumint(9) NOT NULL,
score mediumint(9) NOT NULL
);";
require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
dbDelta($sql);
}