WordPress-Plugin: Benutzerdefinierte Bearbeitungsseite im Admin-Bereich?

Lesezeit: 3 Minuten

Ich habe mein eigenes Plugin erstellt, mit dem Benutzer sich per E-Mail anmelden können. Ich habe eine MySQL-Tabelle erstellt und wenn Benutzer sich im Frontend anmelden, werden E-Mails in meine Tabelle geschrieben.

Jetzt benötige ich einige Backend-Funktionen. Ich habe eine Tabelle mit allen Benutzerdaten (Namen, E-Mails usw.). Aber jetzt muss ich bestimmte Zeilen löschen und bearbeiten.

Wie kann ich eine benutzerdefinierte Bearbeitungsseite im WordPress-Administrationsbereich erstellen? Auf meiner eigenen URL? Etwas wie: /wp-admin/admin.php?page=subscribe-plugin&do=edit&id=10 ? Und wie zeigt man dort das HTML-Formular an? Und wie mache ich dann eine Post-Abfrage? Datenbankänderungen vornehmen?

Ich habe das gesamte Handbuch und den „Codex“ gelesen, aber keine Ahnung, wie das geht.

  • Es gibt zahlreiche Tutorials zum Erstellen benutzerdefinierter Admin-Seiten für ein WordPress-Plugin. Haben Sie schon welche davon probiert? Wenn ja, sind Sie irgendwo hängengeblieben? Teilen Sie Ihren Code mit und wir helfen Ihnen weiter.

    – Cabrerahector

    7. November 2018 um 20:57 Uhr

  • @cabrerahector ja, ich habe es natürlich versucht. Alles was ich habe: Ich kann einen Menüpunkt und eine Seite dafür erstellen. Aber ich brauche eine wirklich benutzerdefinierte Seite mit meinem HTML-Formular und seinem Handler.

    – a.anon

    7. November 2018 um 22:10 Uhr

  • @brasofilo Entschuldigung, aber es ist nicht das, was ich will. Es ist zu schwierig, es mit benutzerdefinierten Beiträgen zu schaffen. Ich brauche nur ein Tool, um meine eigenen HTML-Formulare in WordPress zu erstellen und damit umzugehen. Ich habe herausgefunden, wie man eine Seite ohne Menüpunkt erstellt. Und darauf ein HTML-Formular erstellt (Bearbeitung meines eigenen Artikels). Okay Das ist nett. Aber wie gehe ich mit der Post-Abfrage dieses Formulars um?

    – a.anon

    7. November 2018 um 22:12 Uhr

  • Öffnen Sie neue Fragen, wenn Sie neue Probleme mit Ihrem Code haben.

    – brasofilo

    7. November 2018 um 23:50 Uhr

Der erste Schritt besteht darin, eine Admin-Seite der obersten Ebene mit zu erstellen add_menu_page() Funktion.

add_action( 'admin_menu', 'my_admin_menu' );

function my_admin_menu() {
    add_menu_page( 'My Top Level Menu Example', 'Top Level Menu', 'manage_options', 'subscribe-plugin/subscribe-plugin-admin-page.php', 'subscribe-plugin_admin_page', 'dashboard-tickets', 6  );
}

Die Funktion benötigt sieben Argumente.

$page_title
(string) (Erforderlich) Der Text, der in den Titel-Tags der Seite angezeigt werden soll, wenn das Menü ausgewählt wird.

$menu_title
(string) (Erforderlich) Der Text, der für das Menü verwendet werden soll.

$Fähigkeit
(string) (Erforderlich) Die Fähigkeit, die erforderlich ist, damit dieses Menü dem Benutzer angezeigt wird.

$menu_slug
(string) (Erforderlich) Der Slug-Name, mit dem auf dieses Menü verwiesen werden soll. Sollte für diese Menüseite eindeutig sein und nur Kleinbuchstaben, Bindestriche und Unterstriche enthalten, um mit sanitize_key() kompatibel zu sein.

$Funktion
(aufrufbar) (Optional) Die Funktion, die aufgerufen werden soll, um den Inhalt dieser Seite auszugeben. Standardwert: ”

$icon_url
(string) (Optional) Die URL zum Symbol, das für dieses Menü verwendet werden soll. * Übergeben Sie ein Base64-codiertes SVG mit einem Daten-URI, dessen Farbe dem Farbschema entspricht. Dies sollte mit „data:image/svg+xml;base64,“ beginnen. * Übergeben Sie den Namen einer Dashicons-Hilfsklasse, um ein Schriftartensymbol zu verwenden, z. B. „dashicons-chart-pie“. * Übergeben Sie „none“, um div.wp-menu-image leer zu lassen, damit ein Symbol über CSS hinzugefügt werden kann. Standardwert: ”

$position
(int) (Optional) Die Position in der Menüreihenfolge, an der dieses angezeigt werden soll. Standardwert: null

Der nächste Schritt besteht darin, Seiteninhalte zu erstellen. Sie müssen lediglich die in Argument fünf definierte Funktion erstellen und Ihr Formular wiedergeben.

function subscribe-plugin_admin_page(){
    ?>
    <div class="wrap">
        <h2>Welcome To My Plugin</h2>
        //Your form here
    </div>
    <?php
}

Beispiel-URL einer Admin-Seite mit zusätzlichen Abfrageargumenten:

$query_args = array( 'page' => 'your-plugin-page', 'do' => 'edit' );
echo add_query_arg( $query_args, admin_url( 'subscribe-plugin/subscribe-plugin-admin-page.php' ) );

  • Ich habe es! Ich muss also nur EINE Funktion (subscribe-plugin_admin_page in Ihrem Beispiel) verwenden, um ALLE verschiedenen Seiten anzuzeigen und alle verschiedenen Post-Abfragen zu verarbeiten, basierend auf den GET-Parametern, die ich erhalte.

    – a.anon

    7. November 2018 um 23:28

1450780cookie-checkWordPress-Plugin: Benutzerdefinierte Bearbeitungsseite im Admin-Bereich?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy