Heim >CMS-Tutorial >WordDrücken Sie >Der WordPress -Plugin -Boilerplate Teil 3: Die letzten Schritte

Der WordPress -Plugin -Boilerplate Teil 3: Die letzten Schritte

Christopher Nolan
Christopher NolanOriginal
2025-02-16 11:53:09225Durchsuche

Der WordPress -Plugin -Boilerplate Teil 3: Die letzten Schritte

Key Takeaways

  • Der dritte Teil der WordPress -Plugin -Boilerplate -Serie konzentriert sich auf die Implementierung der öffentlichen Funktionalität des Plugins, die das Abrufen von Benutzereinstellungen und die Anzeige einer Mitteilung entsprechend in seiner einzelnen Postansicht enthält.
  • In der Anleitung wird erläutert, wie das Thema zum Testen vorbereitet, wie man sich in den Filter des Gesetzes anschließt, wie der Inhalt bedingt geändert wird und wie der Unterschied zwischen der aktuellen Zeit und der letzten modifizierten Zeit berechnet wird.
  • Styling Der Benachrichtigungstext wird ebenfalls besprochen, wobei der Autor einen einfachen Styling -Handbuch bietet, der dem gesamten Themendesign entspricht. Der Autor schlägt auch potenzielle Verbesserungen vor, wie z.
  • Der Autor schließt mit der Hervorhebung der Vorteile des WordPress-Plugin-Boilerplate, der eindeutigen Struktur, der Einhaltung von Best Practices und dem zeitsparenden Aspekt, einen soliden Ausgangspunkt für die Plugin-Entwicklung zu haben.
Im zweiten Teil dieser Serie haben wir einfache Verwaltungsfunktionen für unser Plugin erstellt. Wir haben den Benutzern eine Optionsseite zur Verfügung gestellt, auf der sie das Plugin gemäß ihren Einstellungen optimieren können.

Wenn Sie Teil 1 und 2 verpasst haben, finden Sie sie unten:

    Der WordPress -Plugin -Boilerplate Teil 1: Beschleunigen Sie die Entwicklung mit dem WordPress -Plugin -Boilerplate
  • Das WordPress -Plugin -Kesselplatte Teil 2: Entwicklung eines WordPress -Plugins
Für diesen Artikel werden wir die öffentliche Funktionalität des Plugins implementieren. Dies bedeutet, dass wir die Benutzerpräferenzen abrufen, feststellen, ob dieser bestimmte Beitrag veraltet ist oder nicht, und die Mitteilung entsprechend in seiner einzelnen Postansicht anzeigen. Fangen wir an!

Vorbereitung des Themas

Wir müssen unser Thema vorbereiten, damit wir es später testen können. Wir werden das fünfundzwanzigzehn Thema verwenden, das standardmäßig mit WordPress versandt wird. Anstatt die Beiträge manuell zu bevölkern, werden wir die vom Thema Review -Team bereitgestellten Themen -Testdaten verwenden, um die Beiträge zu bevölkern.

Wir müssen den auf der obigen Codex bereitgestellten Themen-Unit-Test-Test-data.xml herunterladen und in unsere WordPress-Installation importieren. Die integrierte WordPress-integrierte Importfunktionalität kann durch Navigieren zu Tools> Import aus der Seitenleiste gefunden werden.

Der WordPress -Plugin -Boilerplate Teil 3: Die letzten Schritte Wir werden verschiedene Möglichkeiten präsentiert, und da wir die WordPress -Exportdatei importieren, werden wir WordPress wählen. Abhängig von der WordPress -Installation wird ein Plugin -Popup angezeigt, wenn das WordPress -Importeur -Plugin nicht installiert ist. Gehen Sie einfach zuerst das Plugin ein, wenn Sie es nicht haben, und wir werden den tatsächlichen Importprozess nach Abschluss des Imports fortsetzen.

Der WordPress -Plugin -Boilerplate Teil 3: Die letzten Schritte

Dies ist die Standard-WordPress-Importseite, daher müssen wir die zuvor heruntergeladene Themen-Einheit-Testdaten auswählen und auf die Schaltfläche "Datei" und importieren "klicken.

Der WordPress -Plugin -Boilerplate Teil 3: Die letzten Schritte

Ein zweiter Bildschirm wird dann präsentiert. Machen Sie sich keine Sorgen über den Abschnitt "Autoren zuweisen", da wir ihn als standardmäßig belassen können. Stellen Sie im Abschnitt „Anhänge importieren“ sicher, dass das Kontrollkästchen „Dateianhänge herunterladen und importieren“ wird, damit alle externen Anhänge in die Medienbibliothek heruntergeladen und importiert werden.

Drücken Sie die Taste „Senden“ und warten Sie, bis der Importprozess erfolgreich durchgeführt wird.

Jetzt sind wir bereit, den Code zu schreiben, der unsere Mitteilung anzeigt.

Anschlüsse in den Abschluss

Verwenden des Filters des Kontents ist der perfekte Weg, um den Inhalt der dem Benutzer angezeigten Beiträge zu ändern. Gemäß dem vorherigen Tutorial fügen wir den Haken zum Boilerplate -Klassenloader hinzu, wobei der einzige Unterschied darin besteht

Fügen Sie diese Codezeile in die Methode hinzu:

<span>$this->loader->add_action( 'the_content', $plugin_public, 'the_content' );</span>
Dies bedeutet, dass wir eine öffentliche The_Content -Methode in unsere Klasse veraltet_notice_public implementieren müssen. Öffnen Sie die öffentliche/klassenüberdatierte Notiz-öffentliche .php und modifizieren Sie es entsprechend.

bedingt den Inhalt

bedingt geändert

Da der The_Content -Filter von verschiedenen Plugins und des internen WordPress -Kerns verwendet wird, müssen wir vorsichtig sein, um unseren benutzerdefinierten Inhalt in ihn einzuführen.

Wir müssen sicherstellen, dass wir nur den veralteten Hinweistext einfügen, wenn ein einzelner Beitrag angezeigt wird, nicht im Blog -Post -Index. Dazu können wir es mit der Funktion is_main_query filtern. Diese Funktion ist nützlich, wenn wir feststellen müssen, ob die laufende Abfrage die Haupt- oder eine sekundäre/benutzerdefinierte Abfrage ist.

Eine andere Sache, die wir berücksichtigen müssen, ist, dass wir nur den Hinweistext für eine einzelne Ansicht des Post -Typs -Posts anzeigen.

Dies ist die aktualisierte The_Content -Methode, die in der Klasse veraltet_notice_public enthalten ist.

Berechnen der Days Differenz
<span>public function the_content( $post_content ) {
</span>
		<span>if ( is_main_query() && is_singular('post') ) {
</span>			<span>// do something
</span>		<span>}
</span>
        <span>return $post_content;
</span>	<span>}</span>

Bevor wir beginnen, setzen wir unsere Position, damit die Mitteilung als "vor" in der Post angezeigt wird, und die Anzahl der Tageschwellen auf 30.

Zunächst müssen wir die gespeicherten Einstellungen unseres Plugins abrufen. Die Get_Option -Funktion erledigt den Job und als sicheres Maß werden wir einen Standardwert als zweites Argument für Get_Option übergeben.

<span>$this->loader->add_action( 'the_content', $plugin_public, 'the_content' );</span>

Um die Days -Differenz zwischen der aktuellen Zeit und der letzten modifizierten Zeit zu berechnen, werden wir zwei DateTime -Objekte instanziieren. Wir können eine genaue Messung des Zeitunterschieds unter Verwendung der Diff -Methode in der DateTime -Klasse erhalten. Beachten Sie, dass die DateTime -Klasse nur auf Php> = 5.3.0 verfügbar ist.

<span>public function the_content( $post_content ) {
</span>
		<span>if ( is_main_query() && is_singular('post') ) {
</span>			<span>// do something
</span>		<span>}
</span>
        <span>return $post_content;
</span>	<span>}</span>

$ DATE_DIFF ist eine Instanz der DateInterval -Klasse, daher werden wir eine Reihe von Daten in Bezug auf Zeitunterschiede zur Verfügung stehen. Wenn wir die Variable $ DATE_DIFF var_dump haben, sollten wir je nach dem Beitrag, den Sie derzeit anzeigen, erhalten.

<span>$position  = get_option( 'outdated_notice_position', 'before' );
</span>	<span>$days      = (int) get_option( 'outdated_notice_day', 0 );</span>

Wir interessieren uns nur für den Wert der Tage, da er als Vergleich mit unserer Tageschwelle verwendet wird. Wie ich bereits sagte, werden wir sie vergleichen, damit wir die spezifische Klasse auf unser Mitteilungselement anwenden können, um sie zwischen den Beiträgen anders zu stylen.

<span>$date_now  = new DateTime( current_time('mysql') );
</span>	<span>$date_old  = new DateTime( get_the_modified_time('Y-m-d H:i:s') );
</span>	<span>$date_diff = $date_old->diff( $date_now );</span>

Dieser einfache Vergleichsblock reicht aus, um zu bestimmen, welche Klasse für unsere DIV verwendet werden soll. Das einzige, was jetzt noch übrig ist, ist, die HTML tatsächlich zu dem Postinhalt zu konstruieren.

Für einen besseren Übersetzungs -Bereit -Text werden wir die Funktion _n verwenden, um den richtigen Text auszuwählen, der je nach Anzahl der Tage seit der Aktualisierung des Posts verwendet wird. Dann werden wir den Kündigungstext in seine eigene DIV einwickeln, damit wir ihn später stylen können. Fühlen Sie sich frei, den Benachrichtigungstext nach Ihren eigenen Vorlieben zu optimieren.

<span>object(DateInterval)#286 (8) {
</span>	  <span>["y"]=>
</span>	  <span>int(0)
</span>	  <span>["m"]=>
</span>	  <span>int(0)
</span>	  <span>["d"]=>
</span>	  <span>int(12)
</span>	  <span>["h"]=>
</span>	  <span>int(23)
</span>	  <span>["i"]=>
</span>	  <span>int(17)
</span>	  <span>["s"]=>
</span>	  <span>int(22)
</span>	  <span>["invert"]=>
</span>	  <span>int(0)
</span>	  <span>["days"]=>
</span>	  <span>int(12)
</span>	<span>}</span>

Die Variable $ notal sollte nun das Markup enthalten, das wir in unseren Post -Inhalt einfügen werden. Das einzige, was noch zu tun ist, ist, es hinzuzufügen.

<span>if ( $date_diff->days > $days ) {
</span>		<span>$class = 'is-outdated';
</span>	<span>} else {
</span>		<span>$class = 'is-fresh';
</span>	<span>}</span>

Als Zusammenfassung sollte die Methode der The_Content in veraltet_notice_public endlich aussehen.

<span>// Filter the text
</span>	<span>$notice = sprintf(
</span>				<span>_n(
</span>					<span>'This post was last updated %s day ago.',
</span>					<span>'This post was last updated %s days ago.',
</span>					<span>$date_diff->days,
</span>					<span>'outdated-notice'
</span>				<span>),
</span>				<span>$date_diff->days
</span>			<span>);
</span>
	<span>// Add the class
</span>	<span>$notice = '<div >' . $notice . '</div>';
</span>	<span>$notice = sprintf( $notice, $class );</span>

Versuchen Sie, auf ein paar Seiten zu stöbern, um festzustellen, ob unser Plugin wie beabsichtigt funktioniert. Das ist es, was ich sehe, wenn ich zum "Hello World" -Post auf URL /2015/05/11/Hello-World/.

stöbere Der WordPress -Plugin -Boilerplate Teil 3: Die letzten Schritte

Stylen des Benachrichtigungstextes

Wir werden ein einfaches Styling auf die .outdated-Notice-DIV anwenden, die gut zum allgemeinen Themendesign passt, ohne aufdringlich zu sein. Um dies zu tun, werden wir in Bezug auf die bereits verwendete Schriftgröße oder die Schriftfamilie nichts ändern. Außerdem werden wir das Bootstrap -Farbschema und das Styling vorerst ausleihen.

Öffnen Sie die veraltete Datei veraltet, die in der Öffentlichkeit/CSS-Datei enthalten ist, und fügen Sie diese Regel hinzu.

<span>if ( 'after' == $position ) {
</span>		<span>$post_content .= $notice;
</span>	<span>} else {
</span>		<span>$post_content = $notice . $post_content;
</span>	<span>}</span>

Wir brauchen auch zwei verschiedene Stile, um die Nachfrischigkeit darzustellen, die ein Stil für .is-Fresh und eine für .is-outdated ist. Dieser Ausschnitt sollte den Trick machen und uns ein schönes grüne Farbschema für einen frischen Beitrag und ein rotes Farbschema für einen veralteten Beitrag verleihen.

<span>public function the_content( $post_content ) {
</span>
		<span>if ( is_main_query() && is_singular('post') ) {
</span>			<span>$position  = get_option( 'outdated_notice_position', 'before' );
</span>			<span>$days      = (int) get_option( 'outdated_notice_day', 0 );
</span>			<span>$date_now  = new DateTime( current_time('mysql') );
</span>			<span>$date_old  = new DateTime( get_the_modified_time('Y-m-d H:i:s') );
</span>			<span>$date_diff = $date_old->diff( $date_now );
</span>
			<span>if ( $date_diff->days > $days ) {
</span>				<span>$class = 'is-outdated';
</span>			<span>} else {
</span>				<span>$class = 'is-fresh';
</span>			<span>}
</span>
			<span>// Filter the text
</span>			<span>$notice = sprintf(
</span>						<span>_n(
</span>							<span>'This post was last updated %s day ago.',
</span>							<span>'This post was last updated %s days ago.',
</span>							<span>$date_diff->days,
</span>							<span>'outdated-notice'
</span>						<span>),
</span>						<span>$date_diff->days
</span>					<span>);
</span>
			<span>// Add the class
</span>			<span>$notice = '<div >' . $notice . '</div>';
</span>			<span>$notice = sprintf( $notice, $class );
</span>
			<span>if ( 'after' == $position ) {
</span>				<span>$post_content .= $notice;
</span>			<span>} else {
</span>				<span>$post_content = $notice . $post_content;
</span>			<span>}
</span>		<span>}
</span>
        <span>return $post_content;
</span>	<span>}</span>

Lassen Sie uns die Postansicht aktualisieren und sehen, wie sie gestylt wird. Beispiele für einen frischen und veralteten Beitrag:

Der WordPress -Plugin -Boilerplate Teil 3: Die letzten Schritte Der WordPress -Plugin -Boilerplate Teil 3: Die letzten Schritte

Das ist es! Wir haben jetzt unser voll funktionsfähiges Plugin basierend auf dem WordPress -Plugin -Boilerplate entwickelt.

Verbesserungen

Es gibt verschiedene Dinge, die basierend auf dem verbessert werden können, was wir bisher getan haben. Unter ihnen sind:

  • Dynamischer Text für verschiedene Kontexte, in denen wir unterschiedliche Text für die veraltete Mitteilung verwenden können.
  • Entfernen Sie das Enqueuching von veraltetem Drehbuch, da es nicht verwendet wird.
  • abgelehnte Mitteilung, damit sie die Benutzererfahrung beim Lesen des Beitrags nicht unterbrechen.

Schlussfolgerung

Die WordPress -Plugin -Kesselplatte bietet einen perfekten Ausgangspunkt, um jedes Plugin von Grund auf neu zu entwickeln. In diesem letzten Teil der Serie haben wir die öffentliche Funktionalität unseres Plugins entwickelt. Die Modifikationen sind zwar recht einfach, werden in geringer Zeit vorgenommen, während sie das von der Kesselplatte selbst festgelegte OOP -Muster beibehalten und Standards und Best Practices einhalten.

Eine vollständige Kopie des Codes ist wie gewohnt bei GitHub im Teil-3-Zweig verfügbar.

häufig gestellte Fragen (FAQs) zu WordPress Plugin Boilerplate

Was ist der WordPress-Plugin-Kesselplatte und warum ist es wichtig? Es bietet eine klare und konsistente Struktur, die leicht zu verstehen und mit ihnen zu arbeiten ist, insbesondere für Entwickler, die neu in der WordPress -Plugin -Entwicklung sind. Es ist wichtig, weil es Zeit und Mühe spart, indem es einen soliden Ausgangspunkt bereitstellt und die Notwendigkeit verringert, gemeinsame Code von Grund auf neu zu schreiben. Es fördert auch Best Practices bei der Codierung, Verbesserung der Leistung, Sicherheit und Wartbarkeit Ihrer Plugins. Sie müssen es zuerst aus dem Github -Repository herunterladen. Nach dem Herunterladen können Sie das Verzeichnis und die Dateien des Boilerplate umbenennen, um die Einzelheiten Ihres Plugins zu entsprechen. Der Code des Boilerplate ist gut gefördert und führt Sie dazu, wo Sie Ihren benutzerdefinierten Code platzieren sollen. Denken Sie daran, die Plugin-Header in der Haupt-Plugin-Datei zu aktualisieren, um die Details Ihres Plugins widerzuspiegeln. und unter der GPL lizenziert, was bedeutet, dass Sie es sowohl für persönliche als auch für kommerzielle Projekte verwenden können. Es ist jedoch eine gute Praxis, die Kesselplatte in der Dokumentation oder Credits Ihres Plugins anzuerkennen.

Wie kann ich zum WordPress-Plugin-Boilerplate-Projekt beitragen? Sie können beitragen, indem Sie Fehler melden, Verbesserungen vorschlagen oder Pull -Anfragen in seinem Github -Repository senden. Stellen Sie vor dem Beitrag die Beitragsrichtlinien des Projekts zu lesen und zu verstehen. und überschaubar. Es besteht aus drei Hauptverzeichnissen: "admin", "inklusive" und "öffentlich". Das Verzeichnis "admin" enthält die CSS-, JavaScript- und PHP-Dateien für die admin-spezifische Seite des Plugins. Das Verzeichnis „Include“ wird verwendet, um die Kern -Plugin -Klasse und andere gemeinsam genutzte Funktionen zu definieren. Das 'öffentliche' Verzeichnis enthält die Dateien für die öffentlich ausgerichtete Seite des Plugins. Mit Ihrem Plugin erstellen Sie in der Regel eine neue Klasse für diese Funktion im Verzeichnis "Include". Diese Klasse sollte alle Haken definieren, die Ihre Funktion ausführen muss. Dann instanziieren Sie diese Klasse in der Haupt -Plugin -Klasse und fügen sie der Funktion "Run" hinzu. Dieser modulare Ansatz erleichtert das Hinzufügen, Entfernen oder Ändern von Funktionen in Ihrem Plugin. Umgang mit Plugin -Optionen im Verzeichnis "Admin". Diese Klasse enthält Funktionen zum Registrieren von Einstellungen, Definieren von Abschnitten und Feldern und das Rendern der Einstellungsseite. Sie können diese Klasse erweitern, um die spezifischen Optionen Ihres Plugins zu verarbeiten. Verzeichnis. Diese Klasse lädt die Textdomäne Ihres Plugins und ermöglicht es, in andere Sprachen übersetzt zu werden. Sie müssen nur die Platzhaltertextdomäne in der Boilerplate durch die Textdomäne Ihres Plugins ersetzen. für die Enqueinging -Skripte und -stile in den Verzeichnissen "admin" und "öffentliche". Diese Klassen enthalten Funktionen zum Registrieren und Engagement Ihrer Skripte und Stile, um sicherzustellen, dass sie am richtigen Ort und zum richtigen Zeitpunkt geladen werden.

Wie deinstalliere ich mein Plugin mit der WordPress -Plugin -Boilerplate sauber? Diese Datei sollte einen Reinigungscode enthalten, z. B. das Entfernen von Pluginoptionen oder Datenbanktabellen. Dies stellt sicher, dass Ihr Plugin beim Deinstallieren keine Spuren hinter sich lassen.

Das obige ist der detaillierte Inhalt vonDer WordPress -Plugin -Boilerplate Teil 3: Die letzten Schritte. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn