it-swarm.com.de

Irgendwelche Anleitungen zum Erstellen benutzerdefinierter Administrationsseiten?

Grundsätzlich möchte ich eine Tabelle (vorzugsweise AJAXified) erstellen, mit der der Benutzer eine Informationszeile eingeben und neue Informationszeilen hinzufügen und ausgewählte löschen kann.

Ich habe diesen Beitrag und diesen Beitrag gefunden. Die Design-Seite sieht sehr einfach aus, aber ich möchte über die Funktionalität wissen. Wie füge ich die Feldinhalte der Datenbank hinzu und rufe sie wieder auf? Wie kann ich diese Seite in Wordpress als Ganzes "einbinden"? Ich habe buchstäblich keine Ahnung, wo ich anfangen soll.

Ich komme aus der Perspektive von jemandem, der sich mit HTML & CSS auskennt, und das auch mit JS/jQuery, aber im Grunde genommen hackt er nur PHP Code, den er findet.

Für jede Hilfe wäre ich dankbar, auch wenn Sie mir sagen würden, dass ich gerade nicht in der Lage bin, mit dem X-Plugin zu spielen. FWIW, ich dachte darüber nach, dies mit einem benutzerdefinierten Post-Typ oder dem Magic Fields-Plugin zu tun, aber ich wollte eine benutzerfreundlichere Erfahrung.

Danke vielmals!

7
Jodi Warren

Ich habe vor einiger Zeit an der gleichen Stelle wie Sie angefangen und etwas Ähnliches geschaffen. Ich denke, Sie müssen Folgendes wissen.

1) Finde heraus, wie du in erster Linie deine grundlegende Hallo-Welt erschaffst. Ein einfaches Plugin besteht aus ein paar Kommentaren am Anfang einer PHP -Datei, die in Ihrem Plugin-Verzeichnis abgelegt wird. Beachten Sie die Variable, die die Klasse aufruft, die sie in Bewegung bringt. Der Konstruktor der Klasse ruft add_top_level_menu auf. Wenn dieser Befehl angeklickt wird (siehe $ function variable), 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) Nachdem Sie interne Funktionen erstellt haben, um Ihre Daten zurückzugeben, wie auch immer dies sein mag. (Verwenden Sie globale WordPress-Datenfunktionen, z. B. $ wpdb-> get_results ($ sql).

3) AJAX im Admin unterscheidet sich ein wenig von der normalen Verwendung. Alle wordpress AJAX Aufrufe schließen an admin-ajax.php an. Ich fand das: http://www.garyc40.com/2010/03/5-tips-for-using-ajax-in-wordpress/#js-global ziemlich gut darin, Dinge zu erklären.

4) Wenn Sie Tabellen erstellen: Etwas wie das Folgende erledigt die Arbeit für Sie. Suche nach dbDelta im 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);
    }
8
Squiggs.

Hallo zusammen, ich würde WPAlchemy MetaBoxes vorschlagen. Sehr einfach zu bedienen, und es sollte helfen, was Sie suchen.

Beachten Sie jedoch, dass es sich noch nicht um ein Plugin handelt. Sie müssen also nicht mit einem Klick einrichten.

http://www.farinspace.com/wpalchemy-metabox/

0
Joe