WordPress bietet das Schnellbearbeitungsformular zum Verwalten von Taxonomiebedingungen an. Was ist großartig, aber was ist, wenn Sie mehr als nur Ihren Namen und Slug bearbeiten möchten? In diesem Tutorial wird erklärt, wie Sie dieses wunderbare WordPress-Feature erweitern können, um mehr als nur die Grundlagen zu aktualisieren.
Die Quick Edit-Funktion in WordPress ist ein einfaches Werkzeug, mit dem Benutzer Daten, die mit Beiträgen, Seiten und Begriffen verknüpft sind, bearbeiten können, ohne dass vor dem Bearbeiten der Daten zu einer separaten Seite navigiert werden muss. Die Verwendung von Quick Edit ist in WordPress allgegenwärtig. In diesem Lernprogramm wird den Lesern gezeigt, wie Sie die Möglichkeiten dieser Funktion für Taxonomiebedingungen nutzen können. Nachdem Sie die folgenden fünf Schritte durchgearbeitet haben, können Sie über das Quick Edit-Bedienfeld in WordPress erfolgreich Taxonomie-Term-Metadaten hinzufügen.
Um zu zeigen, wie Metadaten für Taxonomie-Begriffe mit Quick Edit hinzugefügt werden, werde ich ein Beispiel für das Anhängen von Meta-Daten an Begriffe in einer "Präsidenten" -Taxonomie im Kontext eines Plugins durcharbeiten. In diesem Beispiel besteht das Hauptziel darin, zwei Metadaten zu jedem Terminus der Taxonomie des Präsidenten beizufügen: Start- und Enddatum. Eine Präsidententaxonomie kann für einen politischen Blogger nützlich sein, der die Posten nach besprochenen Präsidenten kategorisieren möchte.
In diesem Beispiel werde ich ein Plugin erstellen, das das folgende Verzeichnis und die folgende Dateistruktur verwendet:
Der Hauptordner "Quick-Edit" sollte sich im Plugins-Ordner befinden, um als Plugin verwendet zu werden. Erstellen Sie diese Dateistruktur, um sich auf den Rest des Lernprogramms vorzubereiten. Bei korrekter Ausführung sollte die Dateistruktur wie folgt aussehen.
Um sicherzustellen, dass WordPress das Plugin als Plugin erkennt, müssen die standardmäßigen Plugin-Headerinformationen hinzugefügt werden. Durch Hinzufügen des folgenden Kommentars oben in "quick-edit.php" kann das Plugin von WordPress erkannt werden.
Aktivieren Sie nach dem Hinzufügen der Headerinformationen das Plugin über die Seite WordPress-Plugins. Das Beispiel-Plugin ist alles eingerichtet und kann für den Rest des Tutorials verwendet werden.
Bevor mit dem Hinzufügen des Schnellbearbeitungsformulars begonnen wird, muss die Taxonomie des Präsidenten registriert werden, und WordPress muss für die Verarbeitung von Term-Metadaten vorbereitet sein. Das Registrieren von benutzerdefinierten Taxonomien wird in diesem Tutorial nicht ausführlich behandelt, da es an anderer Stelle ausführlich behandelt wurde. Für das vorliegende Beispiel muss eine "Präsident" -Taxonomie registriert werden. Diese Operation wird mit der Funktion "register_taxonomy" abgeschlossen.
function my_taxonomies () // Neue Taxonomie hinzufügen, hierarchisch gestalten (wie Kategorien) $ labels = array ('name' => _x ('Präsidenten', 'taxonomy general name', 'my_plugin'), 'singular_name' => _x ('Präsident', 'Taxonomie-Singularname', 'mein_plugin'), 'search_items' => __ ('Präsidenten suchen', 'mein_plugin'), 'all_items' => __ ('alle Präsidenten', 'mein_plugin') , 'parent_item' => __ ('Übergeordneter Präsident', 'mein_plugin'), 'parent_item_colon' => __ ('Übergeordneter Präsident:', 'mein_plugin'), 'edit_item' => __ ('Präsident bearbeiten', 'mein_plugin '),' update_item '=> __ (' Präsident aktualisieren ',' mein_plugin '),' add_new_item '=> __ (' Neuen Präsidenten hinzufügen ',' mein_plugin '),' neuer_item_name '=> __ (' Neuer Präsidentenname ' , 'mein_plugin'), 'menu_name' => __ ('Präsidenten', 'mein_plugin'),); register_taxonomy ('Präsident', Array ('post'), Array ('hierarchisch' => wahr, 'labels' => $ labels, 'show_ui' => true, 'query_var' => true, 'rewrite' => Array ('slug' => 'präsident')))); add_action ('init', 'my_taxonomies', 10, 1);
Dieses Code-Snippet erstellt eine neue benutzerdefinierte Taxonomie des Typs "Präsident". Die Taxonomie ist für die Arbeit mit dem Posttyp "post" spezifiziert und ist eine hierarchische Taxonomie, die der eingebauten "Category" -Taxonomie ähnelt. Um die Dinge zu beginnen, füllen Sie die Präsidenten-Taxonomie mit den letzten drei Präsidenten der Vereinigten Staaten auf:
Wenn zu diesem Zeitpunkt alles richtig gelaufen ist, sollten Sie im Menü "Beiträge" einen Link für "Präsidenten" und eine Termlistentabelle haben, die dem folgenden Bild ähnelt.
Diese Arbeit hat zwar nichts zur Ermöglichung der Aktivierung von Quick Edit für Term-Meta-Daten beigetragen, sie hat jedoch eine Taxonomie eingerichtet, mit der in diesem Beispiel gearbeitet werden kann.
Die nächste Aufgabe ist die Vorbereitung von WordPress für die Verarbeitung von Term-Metadaten. In WordPress 2.9 wurden dem WordPress-Kern eine Reihe nützlicher Funktionen hinzugefügt, die den Grundstein für das Term-Meta-Management legten. Die Funktionen "add_metadata", "update_metadata" und "get_metadata" ermöglichten eine einfache Methode zum Verwalten von Term-Meta. Diese Funktionen bieten jedoch nur einen Teil der Lösung. Um Term-Meta hinzuzufügen, muss zunächst eine Tabelle zur WordPress-Datenbank hinzugefügt werden, damit diese Funktionen die Daten verwalten können.
Glücklicherweise hat Jacob Goldman ein wunderbares Plugin geschrieben, Simple Term Meta, das diese Aufgabe erledigt und Entwicklern nützliche Funktionen (z. B. "add_term_meta", "update_term_meta", "get_term_meta") für die Verwaltung des Term-Metas zur Verfügung stellt. Im Wesentlichen fügt dieses Plugin dem WordPress-System eine Taxonomiebegriff-Metadaten-API hinzu. Wie Herr Goldman sagt:
"WordPress bietet Metadaten-Support für Posts, Benutzer und Kommentare" out-of-the-box ". Es fehlt jedoch Meta-Unterstützung für Taxonomiebedingungen (Tags, Kategorien oder benutzerdefinierte Taxonomiebegriffe)! Dieses Plug-In bietet vollständige, effiziente Unterstützung für Term-Meta basiert auf dem in WordPress integrierten Post-Meta-Framework. Fügt eine "Postmeta" -Tabelle und Post-Meta-Funktionen hinzu, die jedem bekannt sein sollten, der mit PostPress von WordPress gearbeitet hat. "
Für das vorliegende Beispiel muss dieses Plugin installiert sein, um mit dem Begriff Meta arbeiten zu können. Bevor Sie fortfahren, müssen Sie Simple Term Meta herunterladen und installieren. Wenn dieses Plugin installiert ist, können Sie mit der Codierung des Quick Edit-Formulars beginnen.
"Ausführliche Informationen zum Verwalten des Begriffs Meta mithilfe von Simple Term Meta und zum Erstellen einer Benutzeroberfläche zum Hinzufügen und Bearbeiten von Metadaten für Taxonomiebedingungen finden Sie in meinem Artikel" Hinzufügen von Metadaten zu Taxonomiebedingungen "."
Beachten Sie im vorherigen Bild der Präsidententaxonomie-Seite, dass die Termlistentabelle vier Spalten enthält: Name, Beschreibung, Slug und Beiträge. Letztendlich wird unser Plugin jedem Präsidenten ein Startdatum und ein Enddatum hinzufügen. Wie bei den anderen Termdaten sollten das Startdatum und das Enddatum in dieser Tabelle angezeigt werden. Dieses Ziel kann leicht mit einigen WordPress-Filtern erreicht werden.
Zunächst werden die Header hinzugefügt
function my_column_header ($ Spalten) $ Spalten ['Startdatum'] = __ ('Startdatum', 'Mein_Plugin'); $ Spalten ['Enddatum'] = __ ('Enddatum', 'mein_Plugin'); $ spalten zurückgeben; add_filter ('manage_edit-president_columns', 'my_column_header', 10, 1);
Verwendung der _ $ screen-> id _columns verwalten
filtern, werden der Termlistentabelle zwei zusätzliche Spalten hinzugefügt. Das _ $ screen-> id _columns verwalten
filter sendet ein Argument an die Rückruffunktion my_column_header
. Dieses Argument $ Spalten
ist ein Array von Spalten für den aktuellen Bildschirm.
Durch einfaches Hinzufügen von Elementen zum Array und Zurückgeben dieses Arrays werden neue Spalten zur Termlistentabelle hinzugefügt. Der Filter _ $ screen-> id _columns verwalten
ist ein variabler Filter, bei dem sich der tatsächliche Name des Filters abhängig vom aktuell angezeigten Bildschirm ändert. Beim Anzeigen einer Taxonomie-Verwaltungsseite beginnt der variable Teil des Filters mit "edit-" und endet mit dem Namen der aktuellen Taxonomie. Da wir zur Präsidententaxonomie beitragen, ist dieser Wert "Präsident", der bei der ursprünglichen Definition der Taxonomie angegeben wurde. Verwenden Sie die folgenden Filter für die Standard-WordPress-Taxonomien:
Nachdem nun die Spalten hinzugefügt wurden, müssen die Spalten so vorbereitet werden, dass der Begriff Meta für die einzelnen Terme angezeigt wird. Dies wird mit dem nächsten Code-Snippet erreicht.
Funktion my_column_value ($ empty = ", $ custom_column, $ term_id) return esc_html (get_term_meta ($ term_id, $ custom_column, true)); add_filter ('manage_president_custom_column', 'my_column_value', 10, 3);
Die Term-Meta-Werte werden durch die hinzugefügt _ $ screen-> taxonomy _custom_column verwalten
Filter. Der variable Teil dieses Filters bezieht sich auf die aktuelle Taxonomie, die in diesem Fall "Präsident" ist. Das _ $ screen-> taxonomy _custom_column verwalten
Der Filter akzeptiert drei Argumente:
$ leer
: ein veraltetes Argument, das leer bleiben sollte$ custom_column
: der Name der aktuellen Spalte (z. B. "Startdatum", "Enddatum")$ term_id
: die ID des aktuellen TaxonomiebegriffsDie letzten beiden Argumente werden verwendet, um den Wert des Begriffes Meta-Wert von Interesse zu ermitteln. Später in diesem Tutorial werden das "Startdatum" und "Enddatum" mit der Datenbank in die Datenbank eingefügt add_term_meta
Funktion aus dem Begriff Meta-API des Simple Term Meta-Plugins. Die Werte werden mit den Tasten "Startdatum" und "Enddatum" gespeichert. Das get_term_meta
Die Funktion verwendet den Schlüssel und die Term-ID als Argumente, um den richtigen Meta-Wert zu ermitteln.
Offensichtlich wird die $ term_id an die gesendet my_column_value
Funktion ist der benötigte Begriff id und wird daher für das Argument $ term_id in der verwendet get_term_meta
Funktion. Zum Glück in diesem Fall die $ spaltenname
Variable ist identisch mit dem Schlüssel für den Begriff Meta. Als solches wird es als zweites Argument in der verwendet get_term_meta
Funktion.
Zum Schluss noch der Aufruf an get_term_meta
Funktion ist im eingebunden esc_html
Funktion, eine grundlegende WordPress-Formatierungsfunktion, die HTML bei der Anzeige entgeht.
An diesem Punkt des Lernprogramms wird dieser Code eine leere Zeichenfolge zurückgeben, da noch kein Begriff-Meta festgelegt wurde. Sobald diese Datumsangaben hinzugefügt wurden, werden sie in der korrekten Zeile und Spalte in der Termlistentabelle angezeigt. Nachdem die beiden vorherigen Ausschnitte hinzugefügt wurden, nimmt die Termlistentabelle an.
Nun, da die Spalten festgelegt sind, ist es Zeit, das Schnellbearbeitungsformular hinzuzufügen, um das Term-Meta zu den Begriffen hinzuzufügen.
Das Hinzufügen des Inhalts zum Schnellbearbeitungsformular ist der einfachste Teil dieses Lernprogramms. Es gibt jedoch einige potenzielle Fallstricke, wenn Sie nicht aufpassen. Das quick_edit_custom_box
Diese Aktion ermöglicht den einfachen Zugriff, um zusätzliche Felder zum Schnellbearbeitungsformular hinzuzufügen. Die folgende Funktion fügt dem Quick Edit-Formular die benutzerdefinierten Felder hinzu
Funktion my_quick_edit_custom_box ($ spaltenname, $ screen, $ name) if ($ name! = 'Präsident' && ($ spaltenname! = 'startdatum' || $ spaltenname! = 'enddatum')) geben false zurück; ?>
Bevor Sie in die Erklärung dieser Funktion einsteigen, klicken Sie auf der Presidential-Taxonomieseite auf einen der "Quick Edit" -Links. Sie sollten etwas sehen, das dem folgenden Bild ähnelt.
Das Grundkonzept dieser Funktion und Aktion ist recht einfach. Für jede Spalte, die über das Feld hinzugefügt wird _ $ screen-> id _columns verwalten
filter, der quick_edit_custom_box
wird genannt. Dadurch können für jede definierte Spalte benutzerdefinierte Formularfelder (oder beliebige Inhalte für diese Angelegenheit) hinzugefügt werden.
Beachten Sie an dieser Stelle, dass Sie, wenn Sie der Termlistentabelle keine Spalten hinzugefügt haben, keine Inhalte über das Feld hinzufügen können quick_edit_custom_box
Aktion.
Das quick_edit_custom_box
akzeptiert drei Argumente:
$ spaltenname
: Der Schlüssel für den Wert, der im hinzugefügt wird my_column_header
Funktion$ screen
: der aktuelle Bildschirm$ name
: Name der aktuellen TaxonomieIn dem my_quick_edit_custom_box
, nur der $ spaltenname
und $ name
Argumente werden verwendet. Zunächst wird geprüft, ob die Felder nur im richtigen Kontext gedruckt werden. Wenn die aktuelle Taxonomie nicht "Präsident" ist, sollten die Felder nicht angezeigt werden.
Als nächstes sollten die Felder nur angezeigt werden, wenn die quick_edit_custom_box
Die Aktion wird entweder für die Spalte "Startdatum" oder "Enddatum" ausgeführt. Daher prüft die Bedingungsanweisung, dass die Spalte einer dieser beiden Werte ist. Dieser Schritt ist wichtig, um sicherzustellen, dass die Felder für unerwartete Spalten nicht generiert werden. Zum Beispiel hat die eingebaute Taxonomie "link_category" eine zusätzliche Spalte namens "Links". Wenn Sie diesen Filter für diese Taxonomie verwenden und nicht nach bestimmten Spalten suchen, die der Spaltenliste hinzugefügt wurden, wird ein zusätzliches Feld gedruckt. Beachten Sie, dass die Standardfelder "Name", "Beschreibung" und "Slug" das Feld nicht aufrufen quick_edit_custom_box
.
Nachdem der entsprechende Kontext überprüft wurde, wird das Formularfeld ausgedruckt. Der Wert von $ spaltenname
Variable erlaubt es uns, den Kontext der aktuellen Verwendung der quick_edit_custom_box
Aktion.
Als solches kann die Bezeichnung und das Namensfeld festgelegt werden. Da unsere Spaltenschlüssel "Startdatum" und "Enddatum" mit den Schlüsseln identisch sind, die für den Begriff Meta verwendet werden, wird der $ spaltenname
Variable wird für das Namensattribut im Texteingabefeld verwendet. Beachten Sie, dass diese Funktion einmal für jede definierte Spalte ausgeführt wird. Beim ersten Aufruf wird das Feld "Startdatum" mit der entsprechenden Bezeichnung generiert. Bei der zweiten Ausführung wird das Feld "End Date" mit der entsprechenden Bezeichnung generiert.
Um das Markup mit dem vorhandenen Formular konsistent zu halten, habe ich einfach den für die Standard-WordPress-Felder verwendeten HTML-Code kopiert und in das HTML-Format eingefügt my_quick_edit_custom_box
Funktion. Dadurch erhält das resultierende Formular ein einheitliches Erscheinungsbild. Der Wert für das Feld ist an dieser Stelle nicht festgelegt.
Dieses Formular wird als "Dummy" -Formular generiert, das bei jedem Klicken auf den Link "Quick Edit" geklont und platziert wird. Wenn auf einen Link "Schnellbearbeitung" geklickt wird, füllt eine Javascript-Funktion das Feld mit dem aktuellen Wert, wenn ein Wert festgelegt ist. Wenn Sie den Quellcode für die Presidents-Taxonomieseite anzeigen, befindet sich das Schnellbearbeitungsformular in der Nähe des Abschlusses Wenn alle Felder bereit sind, müssen Sie die Werte in der Datenbank speichern. Um das Start- und Enddatum der Präsidentenkonditionen zu speichern, muss eine von Simple Term Meta bereitgestellte Funktion verwendet werden, Die folgende Funktion speichert sowohl das Startdatum als auch das Enddatum, wenn die Laufzeit aktualisiert wird. Bei dieser Funktion sollten einige Punkte beachtet werden. Vor der Übermittlung der Daten überprüft die Funktion zunächst, ob die Das Ich mache nur eine grundlegende Datenbereinigung, um die Leser daran zu erinnern, dass die Bereinigung und Validierung von Daten sehr wichtig ist. Ich gehe dieses Problem jedoch nicht weiter an, um die Aufgabe zu erfüllen und das Problem nicht mit komplexen Validierungsroutinen zu verwechseln. Daher empfehle ich, einige Artikel zu diesem Thema zu lesen, wenn Sie nicht mit der Validierung und Bereinigung von Daten vertraut sind. Durch einfaches Hinzufügen dieser Funktion zur Datei wird das Speichern dieser Daten nicht abgeschlossen. Die Funktion muss mit einem WordPress-Hook ausgeführt werden. Da die Idee darin besteht, diese Funktion auszuführen, wenn ein Begriff aktualisiert wird, wird der Mit dem Bevor Sie die Siegerrunde für diese Aufgabe in Angriff nehmen, ist es wichtig zu wissen, dass der Lösung in ihrer jetzigen Form eine entscheidende Verwendbarkeitsfunktion fehlt. Insbesondere für einen Begriff, dem das Startdatum und das Enddatum hinzugefügt wurden, werden die Werte nicht in das Formularfeld eingetragen, wenn Quick Edit aufgerufen wird. Ich habe bereits in Schritt 3 darauf hingewiesen, als ich feststellte, dass die Werte für das Formularfeld nicht hinzugefügt werden, wenn das Formular erstellt wird. Sie werden stattdessen mit Javascript aufgefüllt, wenn Quick Edit aufgerufen wird. Das Ausfüllen dieser Formularfelder ist eine wichtige Ergänzung für Benutzer, da die Aktualisierung der Daten sehr einfach ist, insbesondere wenn Tippfehler gemacht werden. Um die Felder vorab auszufüllen, wird mit jQuery ermittelt, welche Werte in welche Felder aufgenommen werden. Um zu verstehen, wie WordPress mit den Standardspalten umgeht, empfehle ich einen Blick auf die Methode "edit" in der Datei "inline-edit-tax-dev.js" im Verzeichnis "wp-admin / js /" von WordPress-Kern. Mit diesem Code als Leitfaden habe ich die folgende Funktion entwickelt, um die vorhandenen Werte in die Formularfelder einzufügen, wenn Quick Edit aufgerufen wird. Fügen Sie diese Funktion der Datei "js / quick-edit.js" hinzu, die Sie im ersten Schritt des Lernprogramms erstellt haben. Lassen Sie uns diesen Code durchgehen, um zu verstehen, was passiert. Innerhalb des Aufrufs an die jQuery Ein Blick auf die dritte Zeile der jQuery-Funktion zeigt, dass die Funktion versucht, die übergeordnete Tabellenzeile zu finden, wenn auf die aktuelle Instanz des Quick Edit-Links geklickt wird, die über die Klasse "editinline" verfügt. Der Text dieses übereinstimmenden Elements wird zurückgegeben und dem Element zugewiesen Wenn Sie sich den HTML-Code ansehen, der für das Quick Edit-Formular geschrieben wurde, das mithilfe von hinzugefügt wurde Nachdem diese Funktion nun in die Datei "quick-edit.js" geschrieben und hinzugefügt wurde, muss sie mit in die Warteschlange gestellt werden Diese Funktion überprüft zunächst den aktuellen Kontext, um festzustellen, ob Javascript benötigt wird. Wenn die Seite "edit-tags.php" ist, die aktuelle Taxonomie "Präsident" ist und der Parameter "Aktion" nicht festgelegt ist (dh die Seite ist nicht die Seite zum Bearbeiten von Begriffen), wird die JavaScript-Datei den Skripts hinzugefügt Warteschlange. Eine der größten Herausforderungen für WordPress-Entwickler ist nicht, wo Javascript und CSS-Dateien hinzugefügt werden. Da dieses Skript nur benötigt wird, wenn sich der Benutzer auf der Taxonomieseite des Präsidenten befindet, wird es nur dann hinzugefügt. Der Rest der Funktion registriert das Skript und fügt es mithilfe von hinzu In diesem Tutorial haben Sie gelernt, wie Sie die Schnellbearbeitungsfunktion in der Termlistentabelle verwenden können, um Inhalte zum Bearbeiten von Term-Metadaten hinzuzufügen. Mit dieser Strategie können Sie im Schnellbearbeitungsbereich Ihres nächsten Plugins oder Designs eigene Elemente hinzufügen. Es ist zu beachten, dass Sie, wenn Sie die Schnellbearbeitung verwenden, auch über die Seiten zum Hinzufügen und Bearbeiten von Taxonomie-Begriffen Felder hinzufügen und bearbeiten können. Sie können einige großartige Tutorials zu diesem Thema finden und Ihr Wissen, das Sie in diesem Tutorial erworben haben, kombinieren, um eine exzellente und benutzerfreundliche Möglichkeit für Benutzer zur Verwaltung von Taxonomie-Term-Metadaten zu schaffen. Abschließend möchte ich Rarst ganz besonders dafür danken, dass Sie sich meinen Code für dieses Tutorial angesehen haben, bevor Sie ihn veröffentlichen!
Schritt 4 Speichern von Formulardaten
update_term_meta
. Diese Funktion funktioniert ähnlich wie die zum Speichern von Post-Meta verwendete Funktion, update_post_meta
. Der Hauptunterschied ist natürlich der update_term_meta
Funktion speichert Daten für Begriffe im Gegensatz zu Beiträgen. Diese Funktion benötigt vier Argumente, von denen drei in der vorliegenden Implementierung der Funktion verwendet werden:
$ term_id
: ID des Begriffs, dem die Metadaten zugeordnet sind$ meta_key
: Name des Metadatenwerts$ meta_value
: Wert für die Metadaten$ prev_value
: vorheriger Wert der Metadaten; hilft, zwischen zwei Metadaten mit identischer term_id und meta_key zu unterscheiden Funktion my_save_term_meta ($ term_id) $ allowed_html = array ('b' => array (), 'em' => array (), 'i' => array (), 'strike' => array (), 'strong.) '=> array (),); if (isset ($ _ POST ['start-date'])) update_term_meta ($ term_id, 'start-date', wp_kses ($ _ POST ['start-date'], $ allowed_html)); if (isset ($ _ POST ['end-date'])) update_term_meta ($ term_id, 'end-date', wp_kses ($ _ POST ['end-date'], $ allowed_html));
$ _POST
Array enthält den erwarteten Wert. Wenn dies der Fall ist, werden die Metadaten des Begriffs aktualisiert. Wenn für den Begriff mit dem angegebenen Schlüssel derzeit keine Term-Metadaten vorhanden sind, wird ein neuer Wert erstellt. Das update_term_meta
legt fest, ob ein Eintrag in der Tabelle hinzugefügt oder aktualisiert werden muss. $ term_id
Der an die Funktion übergebene Wert ist die ID des aktuellen Terms und wird daher an den update_term_meta
zusammen mit der Meta-Taste ("Startdatum") und dem Meta-Wert ('$ _POST ['Startdatum']
'). Abgesehen davon wäre es eine Todsünde, diese Daten vor dem Senden an die Datenbank nicht zu überprüfen. In diesem Beispiel verwende ich wp_kses
Die meisten HTML-Tags können HTML-Tags beim Speichern in der Datenbank bereinigen. edit_ $ taxonomie
Hook ist der passende Haken für den Job. Das $ Taxonomie
Ein Teil des Hooks ist eine Variable, die den Namen der Taxonomie übernimmt, die gerade bearbeitet wird. Für dieses Beispiel wird dieser Hook verwendet edit_president
. Das folgende Snippet ruft das an my_save_term_meta
zur richtigen Zeit. add_action ('edit_president', 'my_save_term_meta', 10, 1);
my_save_term_meta
geschrieben und ausgeführt am edit_president
Haken, sollten die Daten in der Datenbank gespeichert werden und in den richtigen Spalten angezeigt werden. Wenn alles so funktioniert, wie es sollte, sollten die Ergebnisse ungefähr so aussehen wie das folgende Bild. Schritt 5 Formularfelder vorbelegen
jQuery (document) .ready (function () jQuery ('. editinline'). live ('click', function () var tag_id = jQuery (this) .parents ('tr'). attr ('id') var start_date = jQuery ('. start-date', '#' + tag_id) .text (); var end_date = jQuery ('. end-date', '#' + tag_id) .text (); jQuery (' : input [name = "start-date"] ',' .inline-edit-row '). val (start_date); jQuery (': input [name = "end-date"] ',' .inline-edit- row '). val (end_date); return false;););
bereit
Funktion, die zweite Zeile weist jedem Quick Edit-Link ein "click" -Ereignis zu. Die dritte Zeile versucht, die ID der aktuellen Tabellenzeile in der Termlistentabelle zu finden. Dieser id-Wert ist für kontextabhängige jQuery-Selektoren später in der Funktion erforderlich. Das Extrahieren des HTML-Codes aus der Termlistentabelle sieht wie folgt aus (Hinweis: Zur besseren Lesbarkeit und zur Veranschaulichung des Konzepts wurden zahlreiche Zeilen entfernt):
? ? ? 20. Januar 1993 20. Januar 2001 Eltern ('tr')
) und sobald es lokalisiert ist, seine ID erhalten. In diesem Fall ist die tag_id
Variable wird "Tag-33" sein. Mit diesem ID-Wert in der Hand sucht die vierte Zeile der jQuery-Funktion im Kontext der Tabellenzeile nach der Klasse "Start-Date", die eine ID hat, die der entspricht tag_id
Variable. Anfangsdatum
Variable. In diesem Fall ist der Text in der Tabellenzelle mit der Klasse "start-date" in der Tabellenzeile mit der ID "tag-33" "20. Januar 1993", das Startdatum, das wir zu finden versuchen. Die nächste Codezeile spiegelt diesen Prozess für den Enddatumswert wider. Da diese Werte gefunden wurden, besteht der nächste Schritt darin, die entsprechenden Felder auszufüllen. Die sechste Zeile der jQuery-Funktion macht genau das. Es wird versucht, eine Eingabe mit dem Namensattribut "start-date" zu finden, die Teil des Elements ist, das die Klasse "inline-edit-row" (jQuery (': input [name = "start-date"]', '.inline-edit-row')
). quick_edit_custom_box
Hook, Sie werden sehen, dass eine Eingabe mit dem Namen "Startdatum" erstellt wurde, die sich in einem div
mit der Klasse "Inline-Edit-Row". Diese Zeile von jQuery stimmt mit dieser Eingabe überein und setzt den Wert des Attributs "value" auf die Textzeichenfolge, die in gespeichert wird Anfangsdatum
Variable. In diesem Fall wird für die Eingabe mit dem Namen "Startdatum" das Attribut "value" auf "20. Januar 1993" gesetzt. Die gleichen Schritte werden dann für "Enddatum" ausgeführt, und dieses Eingabefeld wird auf ähnliche Weise ausgefüllt.wp_enqueue_script
. Die folgende Funktion und Aktion fügt das Skript dem hinzu Kopf
HTML-Abschnitt, wenn die Taxonomieseite des Präsidenten geladen ist. function my_add_admin_scripts () global $ pagenow; if ($ pagenow == 'edit-tags.php' && (isset ($ _ GET ['taxonomy']) && $ _GET ['taxonomy'] == 'president') &&! isset ($ _ GET ['action']) )) wp_register_script ('quick-edit-js', plugins_url ('/ js / quick-edit.js', __FILE__), array ('jquery')); wp_enqueue_script ('quick-edit-js'); add_action ('admin_enqueue_scripts', 'my_add_admin_scripts', 10, 1);
wp_enqueue_script
. Schließlich wird diese Funktion für die Aktion "admin_init" ausgeführt, die zu einem frühen Zeitpunkt beim Laden von Seiten im WordPress-Verwaltungsbereich ausgeführt wird. Wenn alles korrekt ausgeführt wird, sollten die Formularfelder ausgefüllt werden, wenn auf die Verknüpfungen "Schnellbearbeitung" geklickt wird.
Fazit