Ich habe vor einiger Zeit so ziemlich am selben Ort wie Sie angefangen und etwas Ähnliches geschaffen. Ich denke, Sie müssen Folgendes wissen.
1) Erarbeiten Sie in erster Linie, wie Sie Ihre grundlegende Hallo-Welt erstellen können. Ein einfaches Plugin besteht aus einigen Kommentaren oben in einer PHP-Datei, die in Ihrem Plugins-Verzeichnis abgelegt wird. Beachten Sie die Variable, die die Klasse aufruft, die sie in Bewegung setzt. Der Konstruktor der Klasse ruft add_top_level_menu auf. Wenn Sie darauf klicken (siehe $ Funktionsvariable), wird die Funktion display_page () gestartet, um Ihre Seite aufzubauen.
<?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) Sobald Sie interne Funktionen erstellt haben, um Ihre Daten zurückzugeben, was auch immer das sein mag. (Verwenden Sie globale WordPress-Datenfunktionen, z. B. $ wpdb-> get_results ($ sql).
3) AJAX im Administrator unterscheidet sich ein wenig von der normalen Verwendung. Alle WordPress AJAX-Aufrufe hängen an admin-ajax.php. Ich fand das ziemlich gut darin, Dinge zu erklären : http://www.garyc40.com/2010/03/5-tips-for-using-ajax-in-wordpress/#js-global .
4) Wenn Sie Tabellen erstellen: So etwas wie das Folgende erledigt die Arbeit für Sie. Suche im Codex nach dbDelta.
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);
}