So erstellen Sie ein WordPress-Plugin zur Identifizierung alter Beiträge

Beim Lesen von Artikeln auf Websites habe ich festgestellt, dass auf bestimmten Websites eine Benachrichtigung angezeigt wird, die besagt, dass der Beitrag alt ist, wenn er älter als vier Jahre ist. Eine ähnliche Benachrichtigung wird auch im WordPress-Plugin-Verzeichnis gefunden, wenn ein Plugin seit über zwei Jahren nicht mehr aktualisiert wurde.

In diesem Artikel erstellen wir ein Plugin, das eine ähnliche Benachrichtigung anzeigt, wenn ein Beitrag beendet ist X-Jahre alt wo "X"eine ganze Zahl, die die Anzahl der Jahre angibt, die alt definiert.
Das Plugin bietet Ihnen die Möglichkeit, Ihren eigenen benutzerdefinierten Benachrichtigungssatz und die Anzahl der Jahre anzugeben, bevor ein Beitrag als veraltet gilt.

Dieses Plugin wird mithilfe von objektorientierter Programmierung erstellt, um den Code besser zu organisieren und das DRY-Prinzip einzuhalten. Um dieses Tutorial zu verstehen, sind einige Erfahrungen mit der objektorientierten Programmierung erforderlich.

Planung des Plugins

Das Plugin wird aus zwei bestehen geschützt Klasseneigenschaften und zehn Methoden. Die Eigenschaften werden unten beschrieben.

  • $ _benachrichtigung speichert die Benachrichtigungsnachricht, die aus der Datenbank abgerufen wurde, die zuvor vom Plugin-Benutzer festgelegt wurde.
  • $ _yearsspeichert die Anzahl der Jahre, die aus der Datenbank abgerufen wurden.

Ich werde die Rolle jeder Methode (bekannt als Funktionen in der prozeduralen Programmierung) und ihren jeweiligen Code während der Fahrt erklären.

Das Plugin kodieren

Als Erstes fügen wir den Plugin-Header ein, erstellen den Klasse und definieren Sie die Eigenschaften:


Beim Schreiben von WordPress-Plugins in OOP können alle Aktions- und Filter-Hooks im Konstruktor (benannt) festgelegt werden __konstruieren). Die Konstruktormethode unseres Plugins besteht aus fünf Funktionen: drei Aktionshaken, einem Filterhaken und einem register_activation_hook Funktion.

function __construct () // Einstellungsoptionen für die Aktivierung initialisieren register_activation_hook (__FILE__, array ($ this, 'aop_settings_default_values')); // register Menu add_action ('admin_menu', array ($ this, 'aop_settings_menu')); // Haken Sie den Plugin-Abschnitt und das Feld an admin_init add_action ('admin_init', array ($ this, 'pluginOption')); // Das Plugin-Stylesheet zum Header hinzufügen add_action ('wp_head', array ($ this, 'stylesheet')); // Benachrichtigung über post anzeigen add_filter ('the_content', array ($ this, 'displayNotification')); 
  • Das register_activation_hook Ruft die Methode auf, um die Plugin-Standardeinstellungen bei der Aktivierung festzulegen.
  • Die nächsten drei add_action Funktionen rufen die Hook-Funktionen auf, um das Plugin-Menü zu registrieren, den Plugin-Abschnitt und das Feld mit zu verknüpfen admin_init und fügen Sie das Plugin-Stylesheet dem Header hinzu.
  • Das add_filter Ruf den displayNotification Methode, die die Benachrichtigung anzeigt, wenn ein Beitrag alt ist.

Mit Blick auf die __konstruieren Methode oben, die register_activation_hook Funktion ruft die aop_settings_default_values Methode, um die Standard-Plugin-Einstellungen festzulegen.

public function aop_settings_default_values ​​() $ aop_plugin_options = array ('notification' => 'Dieser Beitrag wurde in den letzten 2 Jahren nicht aktualisiert.', 'years' => 2); update_option ('apo_alert_old_post', $ aop_plugin_options); 

Das aop_settings_menu Die Methode erstellt das Plugin-Untermenü unter dem vorhandenen die Einstellungen Speisekarte.

public function aop_settings_menu () add_options_page ('Alert Post ist alt', 'Alert Post ist alt', 'manage_options', 'aop-alert-post-old', array ($ this, 'alert_post_old_function')); 

Das dritte Argument wurde an den add_options_page Funktion oben ist die alert_post_old_function Methode, die den Seiteninhalt der Plugin-Einstellungen anzeigt.

öffentliche Funktion alert_post_old_function () echo '
'; screen_icon (); Echo '

Alert Post ist alt

'; Echo '
'; do_settings_sections ('aop-alert-post-old'); Einstellungsfelder ('aop_settings_group'); submit_button ();

Um die Plugin-Einstellungen hinzuzufügen, verwenden wir die WordPress-Einstellungs-API, um die Einstellungsformulare hinzuzufügen.

Zuerst definieren wir den Abschnitt, fügen die Einstellungsfelder hinzu und registrieren die Einstellungen. All dies wird in der erledigt pluginOption Methode, die mit dem verbunden war admin_init Aktion früher in der __konstruieren Methode.

public function pluginOption () add_settings_section ('aop_settings_section', 'Plugin-Optionen', null, 'aop-alert-post-old'); add_settings_field ('notification', '', array ($ this,' aop_notification '),' aop-alert-post-old ',' aop_settings_section '); add_settings_field ('Jahre', '', array ($ this,' aop_years '),' aop-alert-post-old ',' aop_settings_section '); register_setting ('aop_settings_group', 'apo_alert_old_post'); 

Die Rückrufmethode für das Einstellungsfeld: aop_notification und aop_years diese Füllung füllt das Feld mit den gewünschten Formulareingaben wie folgt.

öffentliche Funktion aop_notification () $ this-> databaseValues ​​(); Echo ''; 
öffentliche Funktion aop_years () $ this-> databaseValues ​​(); Echo ' ";

Wir werden die Plugin-Benachrichtigung und die Jahreseinstellungen abrufen und in den beiden geschützten Eigenschaften speichern: $ _benachrichtigung und $ _years Sie werden sich als nützlich erweisen, wenn wir feststellen möchten, ob ein Beitrag das festgelegte Alter überschritten hat, und wenn die Benachrichtigungsnachricht angezeigt wird.

public function databaseValues ​​() $ options = get_option ('apo_alert_old_post'); $ this -> _ notification = $ options ['notification']; $ this -> _ years = $ options ['years']; 

Der zur Gestaltung der Benachrichtigung verwendete CSS-Code befindet sich im Stylesheet Methode.

public function stylesheet () Echo <<   HTML; 

Die Funktion, die die Benachrichtigung über dem Beitragsinhalt anzeigt, der als alt angesehen wurde, lautet wie folgt:

öffentliche Funktion displayNotification ($ content) global $ post; $ this-> databaseValues ​​(); // Einstellungen abrufen $ setYear = $ this -> _ years; // Benachrichtigungstext erhalten $ notification = $ this -> _ notification; // berechne post age $ year = date ('Y') - get_post_time ('Y', true, $ post-> ID); // Benachrichtigung nur beim Posting anzeigen if (is_single ()): if ($ year> $ setYear) echo '
'; Echo ' ! '; Echo "$ Benachrichtigung"Echo"
'; endif; $ content zurückgeben;

Lassen Sie uns den obigen Code durchgehen: Zuerst rufen wir die Anzahl der Jahre ab, die den Alter eines Beitrags bestimmen, und ziehen das Jahr ab, in dem der Beitrag geschrieben wurde, vom aktuellen Jahr. Wenn das Ergebnis größer ist als das Jahr, in dem das Alter definiert ist, wird die Benachrichtigung angezeigt, dass der Beitrag alt ist.

Schließlich sind wir mit der Codierung der Plugin-Klasse fertig. Um die Klasse zum Laufen zu bringen, müssen wir sie wie folgt instanziieren:

neue AlertOldPost;

Fazit

In diesem Artikel haben wir gelernt, wie man das Alter eines Beitrags berechnet, eine Benachrichtigung anzeigt, wenn ein Beitrag als alt gilt, und dies unter Verwendung objektorientierter Programmierpraktiken.

Ich fordere Sie dringend auf, den Code zu überprüfen, um ein detailliertes Wissen über seine Funktionsweise zu erhalten. Ihre Fragen, Kommentare und Beiträge sind willkommen.