Heute setzen wir unsere Mini-Serie über das Frontend in Insert-Pfosten fort. In diesem Teil werden wir uns jedoch ausschließlich mit der Vorgehensweise beschäftigen bearbeiten und löschen Pfosten über das Frontend. Wir werden darauf eingehen, wie Sie alle unsere Beiträge anzeigen, bearbeiten und löschen können. Also machen wir uns bereit und beginnen!
Wir sind jetzt in Teil zwei unserer Mini-Serie, und wenn Sie den ersten Teil nicht gelesen haben, dann rate ich Ihnen, denn wir werden da weitermachen, wo wir aufgehört haben. Unser Ziel nach Abschluss dieser Mini-Serie sollte es dem Benutzer ermöglichen, Beiträge über das Frontend einzureichen, zu bearbeiten und in den Papierkorb zu verschieben. Alles ohne im WordPress-Dashboard zu sein. Diese Methoden können sowohl in einem Theme als auch in einem Plugin verwendet werden und sind sehr anpassungsfähig, um sehr fortgeschrittene und komplexe Einreichungen zu erzielen.
Die Demo und die Download-Dateien sind ein abgespecktes Thema, das nur für die Zwecke dieses Tutorials erstellt wurde.
Öffne also deinen bevorzugten Texteditor und lass uns anfangen!
Wir werden damit beginnen, alle unsere Beiträge effektiver darzustellen. Dies wird uns ein besseres Management bei den Beiträgen ermöglichen und es ermöglichen, Aktionen für jeden Beitrag durchzuführen. Da wir ein Design verwenden, um dieses zu entwickeln, erstellen wir eine Seitenvorlage namens template-view-posts.php. Außerdem erstellen wir eine neue Seite über unser WordPress-Dashboard Seiten -> Neu hinzufügen -> Seitenattribute Weisen Sie der Seite die Vorlage zu.
Wir haben jetzt unsere Seitenvorlage und Seite in unserem WordPress-Theme erstellt. Wir können damit beginnen, alle unsere Beiträge auszugeben. Wir erstellen eine sehr einfache Tabelle, um alle notwendigen Informationen auszugeben. Beginnen Sie mit dem Erstellen einer Tabelle mit einigen Überschriften wie folgt:
Titel veröffentlichen | Post-Auszug | Poststatus | Aktionen |
---|---|---|---|
Nachdem wir unsere Tabelle eingerichtet haben, können wir damit beginnen, unsere Tabellenzeilen mit Informationen zu unseren Posts zu füllen. Wir werden zunächst eine benutzerdefinierte WordPress-Schleife erstellen, um sicherzustellen, dass wir alle Beiträge und alle Post-Status erhalten, weil wir sehen möchten, welche Beiträge ausstehen, Entwürfe veröffentlichen, veröffentlicht oder sogar in den Papierkorb verschoben werden. Wir tun dies, indem wir den folgenden Code einfügen:
'post', 'posts_per_page' => '-1', 'post_status' => array ('publish', 'pending', 'draft', 'private', 'trash')))); ?>
Dies ist unser Abfrageobjekt mit all unseren benutzerdefinierten Parametern, die wir eingestellt haben. Über die verschiedenen Parameter, die wir einstellen können, lesen Sie den WordPress-Codex. Als Nächstes werden wir unsere WordPress-Schleife unmittelbar nach unseren Tabellenüberschriften ausführen, wie folgt:
have_posts ()): while ($ query-> have_posts ()): $ query-> the_post (); ?>
Brillant! Wir haben unser Tischset und unser WordPress-Loop-Set. Jetzt müssen wir nur noch unsere Informationen eingeben, die sich auf unsere Tabellenüberschriften beziehen. Ersetzen Sie unsere leeren Tabellenzellen durch folgenden Code:
Bearbeiten Löschen
Der Code, den wir gerade eingefügt haben, beginnt mit der Ausgabe unseres Posttitels, und der nächste Artikel gibt einen Auszug unseres Posts aus. Wir erhalten dann den aktuellen Status des Beitrags und übergeben die Beitrags-ID an diese Funktion. Zum Schluss geben wir zwei Links ein Bearbeiten und Löschen, Wir werden diese später als unsere Aktionen verwenden.
Brillant, wir machen gute Fortschritte. Wir haben unser Thema so eingerichtet, dass alle Beiträge über das Frontend angezeigt werden. Als Nächstes werden wir den Beitrag bearbeiten. Wir beginnen mit der Erstellung einer anderen Seitenvorlage namens template-edit-posts.php. Außerdem erstellen wir eine neue Seite über unser WordPress-Dashboard Seiten -> Neu hinzufügen -> Seitenattribute und weisen Sie die Vorlage dieser Seite zu.
Bevor wir mit der Bearbeitung dieser Vorlage beginnen, gehen wir zurück zu unserer template-view-posts.php Datei und stellen Sie sicher, dass wir die Post-ID an die URL übergeben, wo wir die ID von unserer Bearbeitungsseite abrufen. Wir machen dies mit der WordPress-Funktion: add_query_arg
. Wir werden den folgenden Code unmittelbar vor unserem Bearbeitungslink einfügen:
Der Code, den wir gerade eingefügt haben, legt zuerst den Namen des Parameters fest. Anschließend wird die ID des Beitrags abgerufen. Anschließend erhalten wir die ID unserer Seitenvorlage "Bearbeiten" und fügen unser benutzerdefiniertes URL-Argument hinzu. Wir werden dies verwenden, um die Informationen in unserer Bearbeitungsvorlage abzurufen.
Zum Schluss geben wir dies in unseren Bearbeitungslink ein und machen ihn wie folgt:
"> Bearbeiten
Nachdem wir nun festgelegt haben, dass der Benutzer auf Bearbeiten klickt, wird er mit der Post-ID zu unserer Bearbeitungsvorlage verschoben. Wir werden zu unserem zurückkehren template-edit-posts.php Datei und fangen Sie an, unseren Code einzufügen.
Wir werden über unsere kopieren Bilden von unserer template-insert-posts.php und fügen Sie diese in unsere Bearbeitungsvorlage ein. Wir kopieren den folgenden Code in unsere Bearbeitungsvorlage und entfernen alle Werte aus unseren Eingaben und dem Textbereich. So wird unser Formular folgendermaßen erstellt:
Jetzt, da wir das Seitenformular "Bearbeiten" festgelegt haben, müssen wir die WordPress-Schleife verwenden, um alle Beiträge zu durchsuchen und nur unsere Beiträge zu finden, die der Beitrags-ID entsprechen, die an unsere URL weitergeleitet wurde. Wir werden dies tun, indem wir die WordPress-Schleife oben in unserer Datei ausführen:
'post', 'posts_per_page' => '-1')); ?> have_posts ()): while ($ query-> have_posts ()): $ query-> the_post (); ?>
Damit die WordPress-Schleife sicherstellt, dass wir nur die Informationen des jeweiligen Beitrags abrufen, fügen wir den folgenden Code ein, um sicherzustellen, dass die korrekte Beitrags-ID in unserer Schleife angezeigt wird:
if (isset ($ _GET ['post']))) if ($ _GET ['post'] == $ post-> ID) $ current_post = $ post-> ID;
Was wir gerade eingefügt haben, ist, den URL-Parameter abzurufen und mit der Post-ID zu testen. Wenn eine Übereinstimmung gefunden wurde, weisen wir diese ID unserer zu current_post
Variable. Im Anschluss werden wir einen Code einfügen, um unsere Informationen zu unserem Beitrag zu erhalten. Fügen Sie den folgenden Code direkt unter unserem ein current_post
Zuordnung:
$ title = get_the_title (); $ content = get_the_content ();
Unser endgültiger Code sollte so aussehen:
if (isset ($ _GET ['post']))) if ($ _GET ['post'] == $ post-> ID) $ current_post = $ post-> ID; $ title = get_the_title (); $ content = get_the_content ();
Das ist großartig, wir machen gute Fortschritte. Nun, da wir alle unsere Informationen haben, müssen wir sie nur noch in unsere Formularwerte einfügen. Dies ist einfach, da wir nur Werte für unsere beiden Felder zuweisen. Dazu aktualisieren wir den Namen unseres Buttons auf Post aktualisieren. Der folgende Code ist unser aktualisiertes Formular, wobei das Formular mit dem Titel und dem Inhalt des Bearbeitungspostens gefüllt ist:
Wie Sie dem Code entnehmen können, haben wir unseren Eingabetitel Post Title zur Ausgabe der Titelvariablen zugewiesen. Innerhalb unseres Textbereichs haben wir unsere Inhaltsvariable ausgegeben. Wenn Sie jedoch auf "Aktualisieren" geklickt haben, passiert nichts liegt daran, dass wir das noch nicht erledigt haben, und wir werden es jetzt tun.
Wir müssen zu unserem zurückspringen template-insert-posts.php Datei und wir werden unsere PHP-Formular-Validierung in unsere Edit-Vorlage kopieren. Nachdem wir unsere Formularüberprüfung überarbeitet haben, werden wir einige Änderungen vornehmen und Code einfügen. Wir müssen das abrufen current_post
Variable in unserer Formularvalidierung, und wir tun dies, indem Sie eine globale Variable setzen und diese oberhalb unserer Validierung einfügen:
global $ current_post;
Als nächstes werden wir eine Änderung an unserem vornehmen post_information
Array. Während wir unseren Beitrag aktualisieren, müssen wir sicherstellen, dass er den korrekten Beitrag und nicht alle Beiträge aktualisiert. Wir tun dies, indem wir einen ID-Parameter in unseren einfügen post_information
Array. Machen Sie unser Array wie folgt:
$ post_information = array ('ID' => $ current_post, 'post_title' => wp_strip_all_tags ($ _POST ['postTitle']), 'post_content' => $ _POST ['postContent'], 'post_type' => post ' , 'post_status' => 'pending');
Schließlich nehmen wir noch eine letzte Änderung vor, um sicherzustellen, dass wir den Beitrag aktualisieren und keinen neuen Beitrag einfügen. Wir tun dies, indem Sie einfach die von uns verwendete Funktion ändern, anstatt sie zu verwenden wp_insert_post
, wir werden verwenden wp_update_post
. Den endgültigen Code wie folgt erstellen:
$ post_id = wp_update_post ($ post_information);
Und das wars für die Bearbeitung von Posts über das Frontend. Schließlich werden wir für diesen Teil der Mini-Serie das Löschen von Beiträgen ausführen.
Nun gibt es viele verschiedene Möglichkeiten, um Beiträge zu löschen, und es gab viele verschiedene Diskussionen über die beste Methode, um dies zu erreichen. Bei manchen Leuten ist dies wahrscheinlich die falsche Methode, aber meiner Meinung nach funktioniert sie in dieser aktuellen Situation perfekt. Wir werden die Funktion verwenden get_delete_post_link
.
Wir werden diese Funktion zusammen mit der ID des Beitrags wie folgt an unseren Link zum Löschen übergeben:
"> / Löschen
So einfach löschen Sie Posts über das Frontend. Wir werden dies nur ein wenig erweitern, um sicherzustellen, dass wir keine Fehler haben und ein wenig mehr Benutzer darüber informieren, dass wir einen Beitrag löschen. Wir tun dies, indem wir unserem Onclick eine sehr einfache Bestätigungsfunktion hinzufügen:
?') "href =""> Löschen
Schließlich wird der Lösch-Link mit einer Bedingung versehen, um sicherzustellen, dass wir einen Beitrag nur löschen können, wenn sich der aktuelle Status des Beitrags nicht bereits im Papierkorb befindet. Wir machen das wie folgt:
?') "href =""> Löschen
Und das ist es! Sie können Beiträge in den Papierkorb senden. Nur für den Fall, dass Sie neugierig auf die alternative Methode zum Löschen von Beiträgen waren, werde ich es kurz erklären.
Die Methode ist sehr einfach für das Bearbeiten von Posts, indem die Post-ID zusammen mit einem Parameter von an die URL übergeben wird löschen
und prüfen, ob der Wert dieses Parameters wahr ist, und wenn er wahr ist, übergeben Sie das wp_trash_post
Funktion zum Link. Dies ist sehr einfach und sehr effektiv, aber für unsere derzeitige Situation get_delete_post_link
funktioniert einwandfrei.
Teil 2 ist fertig! Wir können jetzt Beiträge über das Frontend einfügen, bearbeiten und löschen. Wir haben bisher viele Inhalte abgedeckt und werden im nächsten Teil noch ein wenig weiter graben.
Im nächsten Teil werden wir uns mit benutzerdefinierten Feldern und mehr beschäftigen.
Ich möchte Ihnen ein riesiges Dankeschön sagen, dass Sie sich die Zeit genommen haben, mein Tutorial zu lesen. Ich hoffe, es hat geholfen. Bitte zögern Sie nicht, Kommentare zu hinterlassen, und ich werde mein Bestes geben, um Ihnen zu helfen und sie zu beantworten. Wenn nicht, können Sie mich jederzeit direkt über meine Website kontaktieren: www.VinnySingh.co oder Twitter @VinnySinghUK
Bleiben Sie dran für Teil 3!