So zeigen Sie Post-Metadaten in einem WordPress-Beitrag an

In meiner letzten Artikelserie haben wir die Konzepte der objektorientierten Programmierung aus der Perspektive des Anfängers betrachtet. Das Ziel der Serie war es, diejenigen, die mit der objektorientierten Programmierung in PHP nicht vertraut waren, mitzunehmen und die grundlegenden Aspekte des Paradigmas im Kontext von WordPress zu erkunden.

Wenn Sie keine Gelegenheit hatten, die Serie zu lesen, können Sie im letzten Beitrag eine kurze Zusammenfassung (zusammen mit Links zu jedem Artikel der Serie) lesen.

Im Verlauf der Serie haben wir zum Zweck der Demonstration der objektorientierten Prinzipien sowie einiger Features der WordPress-API ein Plugin erstellt. 

Insbesondere haben wir ein Plugin entwickelt, mit dem wir alle Post-Metadaten eines bestimmten Beitrags im WordPress-Dashboard anzeigen können.

Das Plugin steht auf GitHub zum Download zur Verfügung. Dort können Sie auch den Quellcode durchsuchen, die Codekommentare ansehen und generell alles sehen, was beim Erstellen des Plugins bei seiner Entwicklung verwendet wurde.

Seit der Veröffentlichung dieses Postings habe ich eine Reihe verschiedener Fragen erhalten, von denen eine war, wie wir die im Dashboard angezeigten Daten - also die Post-Metadaten - auf das Front-End des Webs setzen Seite? ˅.

In diesem Artikel werden wir einen Blick auf die Erweiterung des Plugins werfen, sodass wir die Daten auf einer einzelnen Beitragsseite anzeigen können. Wir werden darüber sprechen, wie wir dies angesichts unseres vorhandenen Codes tun, wie wir das tun, und wir werden auch darüber sprechen, warum dies möglicherweise keine gute Idee ist.

Also mit dem gesagt, lass uns anfangen.

Auswirkungen der Erweiterung des Plugins

Bevor wir uns überlegen, wie wir das Plugin tatsächlich erweitern werden, ist es meiner Meinung nach eine kurze Diskussion über die Frage, warum das Anzeigen solcher Informationen im Frontend - obwohl möglich - keine gute Idee ist.

Das heißt, ich denke, dies spricht dafür, wie wichtig es ist, beim Umgang mit bestimmten Daten die Auswirkungen zu berücksichtigen, die wir beim Bau von Produkten für andere getroffen haben, und wie wir die Daten verwalten.

Kurz gesagt, nur weil wir können etwas tun, heißt nicht, dass wir sollte TU es.

Ein Blick auf die Daten

Stellen Sie sich das so vor: Die Metadaten, die einem bestimmten Beitrag zugeordnet sind, werden in der Datenbank gespeichert - einige von WordPress, einige von Themes und andere von Plugins - die alle diese Informationen für ihre eigenen speziellen Bedürfnisse verwenden.

Wenn Sie sich das Bild oben ansehen, werden Sie feststellen, dass einige Zeilen durch Schlüssel identifiziert werden, denen ein Unterstrich vorangestellt ist. Zum Beispiel haben wir _edit_lock und _edit_last und dann einige numerische Werte. Dies ist ein Beispiel für Daten, mit denen WordPress den Status der Beiträge intern verwaltet.

Die anderen Schlüssel, die Sie sehen, haben mit Plugins zu tun, die ich in meiner lokalen WordPress-Installation installiert habe, und werden verwendet, um zu zeigen, wie andere Dienstprogramme Daten in der Metadatentabelle speichern und sie dann dem angegebenen Post zuordnen können.

Was ist das Problem?

Das Problem bei der Anzeige all dieser Informationen im Frontend besteht darin, dass Sie dem Benutzer möglicherweise zu viele Informationen anzeigen. 

Im obigen Fall gibt es nichts besonders Gefährliches oder Empfindliches, das die Installation beeinträchtigen könnte. Dies bedeutet jedoch nicht, dass dies immer der Fall sein wird. Darüber hinaus besteht eine erhebliche Chance, dass Sie Informationen anzeigen, die sich auf ein Plugin oder ein Thema beziehen, das nie gewünscht wurde, dass Informationen angezeigt werden.

Für viele - oder sogar für die meisten - Personen, die einen Blog besuchen, werden die Informationen, die im Frontend des Blogs angezeigt werden, wie Lärm aussehen. Es ist ein technischer Jargon, der nichts bedeutet. Aus diesem Grund denke ich, dass es am besten ist, wenn Sie diese Informationen im Dashboard ablegen.

Aber wir werden das Plugin erweitern?

Kurz gesagt, ja, aber nicht, weil ich denke, dass diese Art von Informationen für den Benutzer angezeigt wird, eine gute Idee ist, sondern weil es eine praktische Anwendung gibt, die mit der Erweiterung eines vorhandenen Plugins, den Vorteilen des vorhandenen Codes und den negativen Auswirkungen von so tun.

Also ja - manchmal können die besten Lehren aus der Umsetzung von Ideen kommen, die im Nachhinein möglicherweise nicht gut sind. 

Aber das ist OK. So lernen wir richtig?

Plus gibt es immer noch einige praktische Lektionen, die mit dem Erlernen der Erweiterung einer vorhandenen Codebasis verbunden sind.

Single Post Meta Manager erweitern

Wie bei allen Tutorials, die ich weitergebe, versuche ich genau zu planen Was Wir tun das, bevor wir es tun, damit wir nicht viel durchschätzen müssen, und wir haben einen Aktionsplan für die Gestaltung unserer Lösung.

Wenn Sie also den Single Post Meta Manager nicht überprüft haben, tun Sie dies bitte jetzt und wir machen weiter.

Sobald dies erledigt ist, planen wir Folgendes:

  1. Wir verwenden das Standardthema 25 als Basis für unser Beispiel.
  2. Wir führen ein öffentliches Verzeichnis ein, in dem die Informationen auf der Website angezeigt werden Öffentlichkeit Seite des Blogs speziell im Zusammenhang mit einzelnen Beiträgen.
  3. Wir definieren Hooks, die es uns ermöglichen, Informationen an den Inhalt des Beitrags anzuhängen, damit die Post-Metadaten unten im Inhalt angezeigt werden können. Wir verwenden dazu eine rudimentäre Tabelle, die die Stile des aktuellen Designs übernimmt. Beachten Sie, dass Sie dabei möglicherweise einige wirklich saubere Stile haben und am Ende einige wirklich schwache Stile. Diese stehen Ihnen zur freien Verfügung.
  4. Wir werden dann die Vorlage nutzen, die wir in der ursprünglichen Version des Plugins erstellt haben, um sicherzustellen, dass die Post-Metadaten für den angegebenen Beitrag abgerufen werden, um sie im Front-End anzuzeigen.

Nichts zu kompliziert, oder? Wir müssen nur in unseren Schritten genau sein. Also lasst uns anfangen.

Stellen Sie das öffentliche Verzeichnis vor

Angenommen, Sie haben bereits vierundzwanzig aktiviert und das Plugin installiert. Lassen Sie uns nun an der Einführung unserer Funktionalität arbeiten. Das erste, was wir tun müssen, ist zu tun 

  • einführen Öffentlichkeit Verzeichnis
  • Ergänzen Sie die Single_Post_Meta_Manager_Public Klasse
  • Fügen Sie die Klasse in die Core-Plugin-Datei ein

Nach dem Hinzufügen der Dateien kann das oben durch die folgenden Codezeilen in der ausgeführt werden Lastabhängigkeiten Funktion in Includes / single-post-meta-manager.php.

private Funktion load_dependencies () required_once plugin_dir_path (dirname (__FILE__)). 'admin / class-single-post-meta-manager-admin.php'; required_once plugin_dir_path (dirname (__FILE__)). 'public / class-single-post-meta-manager-public.php'; required_once plugin_dir_path (__FILE__). 'class-single-post-meta-manager-loader.php'; $ this-> loader = new Single_Post_Meta_Manager_Loader (); 

Beachten Sie, dass die einzige neue Zeile die zweite ist einmalig benötigt Anweisung, die die Klassendatei importiert. 

Danach definieren wir die Eigenschaften, den Konstruktor und die Methoden für die Single_Post_Meta_Manager_Public Klasse:

version = $ version;  / ** * Verwendet den Teil des Admin-Verzeichnisses, um die * post-Metadaten am Ende des Beitragsinhalts wiederzugeben. * * @param string $ content Der Beitragsinhalt. * @return string $ content Der Beitragsinhalt einschließlich der angegebenen Beitragsmetadaten. * / public function display_post_meta_data ($ content) ob_start (); required_once plugin_dir_path (dirname (__FILE__)). 'admin / partials / single-post-meta-manager.php'; $ template = ob_get_contents (); $ content. = $ template; ob_end_clean (); $ content zurückgeben; 

Als Nächstes müssen wir die Single Post Meta Manager erstellen define_public_hooks Funktion. Das sollte so aussehen:

get_version ()); $ this-> loader-> add_action ('the_content', $ public, 'display_post_meta_data'); 

Als Nächstes müssen wir einen Aufruf dieser Funktion innerhalb des Konstruktors definieren. Das ist knapp unterhalb der $ this-> define_admin_hooks (); Zeile hinzufügen $ this-> define_public_hooks (); Anruf.

Angenommen, es ist alles gut gelaufen, sollten Sie das Plugin aktivieren, einen beliebigen Beitrag laden und dieselben Metadaten anzeigen können, die jetzt im vorderen Bereich des Beitrags sowie im Dashboard des Beitrags angezeigt werden:

Zusammenfassung

Wie bereits erwähnt, ist es nicht unbedingt die beste Idee, diese Informationen am vorderen Ende eines Beitrags anzuzeigen. Wenn Sie jedoch lernen, wie Sie ein vorhandenes Plugin praktisch hinzufügen können, werden Sie eine völlig neue Funktionalität erhalten und einige der vorhandenen Komponenten wiederverwenden.

Letztendlich ist der Schlüssel zum Mitnehmen zweifach:

  • Bestehenden Code zu nutzen, ist eine mächtige Sache
  • Das Offenlegen von Daten, die für die Benutzer irrelevant sind, ist eine gefährliche Idee

Nachdem Sie dieses Tutorial gelesen haben, beachten Sie, dass ich dies nicht unbedingt in einer Produktionsumgebung befürworte, sondern eher als Lernwerkzeug. Verwenden Sie es also auf eigenes Risiko.

Bitte hinterlassen Sie wie üblich alle Fragen, Kommentare und mehr in den untenstehenden Feed!