Hvordan bygge en WordPress-plugin for å identifisere gamle innlegg

Mens jeg har lest artikler på nettsteder, har jeg funnet ut at når et innlegg er over fire år, vises en melding om at innlegget er gammelt, vist på enkelte nettsteder. Et lignende varsel finnes også i WordPress-plugin-mappen når et plugin ikke er oppdatert på over to år.

I denne artikkelen vil vi bygge et plugin som viser et lignende varsel når et innlegg er over X-år gammel hvor "X"et helt tall som angir antall år som definerer gamle.
Pluggen gir deg muligheten til å angi din egen tilpassede varsel setning og antall år før et innlegg regnes som gammelt.

Dette pluginet vil bli bygget ved hjelp av objektorientert programmering i et forsøk på å gjøre koden mer organisert og å overholde DRY-prinsippet. Som sådan er det nødvendig med litt erfaring med objektorientert programmering hvis du skal forstå denne opplæringen.

Planlegger plugin

Pluggen vil bestå av to beskyttet klasse egenskaper og ti metoder. Egenskapene er beskrevet nedenfor.

  • $ _notification lagrer meldingsmeldingen hentet fra databasen som tidligere ble angitt av plugin-brukeren.
  • $ _yearslagrer antall år hentet fra databasen.

Jeg vil forklare hvilken rolle hver metode (kjent som funksjoner i prosessorprogrammering) og deres respektive kode som vi reiser.

Koding av plugin

Først, la oss inkludere plugin header, opprett klasse og definer egenskapene:


Når du skriver WordPress-plugins i OOP, kan alle handlings- og filterhakene settes i konstruktøren (som heter __construct). Vår plugins konstruktormetode vil bestå av fem funksjoner: tre action kroker, en filterkrok og a register_activation_hook funksjon.

funksjon __construct () // Initialiser innstillingsalternativer ved aktivering register_activation_hook (__FILE__, array ($ this, 'aop_settings_default_values')); // register Meny add_action ('admin_menu', array ($ this, 'aop_settings_menu')); // hook plugin delen og feltet til admin_init add_action ('admin_init', array ($ this, 'pluginOption')); // legge til plugin stilark til header add_action ('wp_head', array ($ this, 'stylesheet')); // visningsvarsling over post add_filter ('the_content', array ($ this, 'displayNotification')); 
  • De register_activation_hook kaller metoden for å angi standardinnstillingene for plugin ved aktivering.
  • De neste tre ADD_ACTION funksjoner koble krokfunksjonene til å registrere plugin-menyen, koble plugin-delen og feltet til admin_init og legg til plugin stilark til henholdsvis hoveden.
  • De add_filter Ring displayNotification Metode som viser varselet når et innlegg er gammelt.

Ser på __construct metode over, den register_activation_hook funksjonen ringer på aop_settings_default_values Metode for å angi standard plugininnstillinger.

offentlig funksjon aop_settings_default_values ​​() $ aop_plugin_options = array ('notification' => 'Dette innlegget har ikke blitt oppdatert i over 2 år.', 'years' => 2); update_option ('apo_alert_old_post', $ aop_plugin_options); 

De aop_settings_menu Metoden lager undermenyen Plugin under eksisterende innstillinger Meny.

offentlig funksjon aop_settings_menu () add_options_page ('Alert Post er gammel', 'Alert Post er gammel', 'manage_options', 'aop-alert-post-old', array ($ dette, 'alert_post_old_function')); 

Det tredje argumentet passerte til add_options_page funksjonen ovenfor er alert_post_old_function Metode som viser sidens innhold i plugininnstillingene.

offentlig funksjon alert_post_old_function () echo '
'; screen_icon (); ekko '

Alert Post er gammel

'; ekko '
'; do_settings_sections ( 'AOP-alert-post-gamle'); settings_fields ( 'aop_settings_group'); submit_button ();

For å legge til plugininnstillingene, bruker vi WordPress Settings API for å legge til innstillingsskjemaene.

For det første definerer vi delen, legger til innstillingsfeltene og endelig registrerer innstillingene. Alt dette vil bli gjort i pluginOption metode som var hekta på admin_init handling tidligere i __construct metode.

offentlig funksjon pluginOption () add_settings_section ('aop_settings_section', 'Plugin Options', null, 'aop-alert-post-old'); add_settings_field ('notification', '', array ($ this,' aop_notification '),' aop-alert-post-old ',' aop_settings_section '); add_settings_field ('years', '', array ($ this,' aop_years '),' aop-alert-post-old ',' aop_settings_section '); register_setting ('aop_settings_group', 'apo_alert_old_post'); 

Innstillingsfelt tilbakeringingsmetode: aop_notification og aop_years som fyll fyller feltet med ønsket forminngang er som følger.

offentlig funksjon aop_notification () $ this-> databaseValues ​​(); ekko ''; 
offentlig funksjon aop_years () $ this-> databaseValues ​​(); ekko '';

Vi henter inn plugin notifikasjon og år innstillinger og lagrer dem i de to beskyttede egenskapene: $ _notification og $ _years fordi de vil komme til nytte når vi skal avgjøre om et innlegg er over den angitte alderen og når meldingen vises.

offentlig funksjon databaseValues ​​() $ options = get_option ('apo_alert_old_post'); $ this -> _ notification = $ options ['notification']; $ dette -> _ år = $ alternativer ['år']; 

CSS-koden bruker i styling varselet vil være i stilark metode.

offentlig funksjon stilark () echo <<   HTML; 

Endelig er funksjonen som viser varselet over innleggets innhold som ble ansett gammelt, som følger:

offentlig funksjon displayNotification ($ content) global $ post; $ Dette-> databaseValues ​​(); // få innstillinger år $ setYear = $ dette -> _ år; // få varseltekst $ notification = $ this -> _ notification; // beregne postalder $ år = dato ('Y') - get_post_time ('Y', true, $ post-> ID); // vis kun varsel på post hvis (is_single ()): hvis ($ år> $ setYear) echo '
'; ekko ' ! '; ekko "$ varsling"; ekko '
'; slutt om; returnere $ content;

La oss snakke gjennom koden ovenfor: Først henter vi antall år som bestemmer når et innlegg er gammelt, trekker året innlegget ble skrevet fra i år. Hvis resultatet er større enn året som definerer gammelt, vises meldingen om at innlegget er gammelt.

Endelig er vi ferdige med å kodes plugin-klassen. For å få klassen til å fungere, må vi ordne det slik:

ny AlertOldPost;

Konklusjon

I denne artikkelen lærte vi å beregne alderen til et innlegg, vise et varsel når et innlegg betraktes som gammelt og gjorde det ved hjelp av objektorientert programmeringspraksis.

Jeg oppfordrer deg til å gjennomgå koden for å få en grundig kunnskap om hvordan det fungerer. Dine spørsmål, kommentarer og bidrag er velkomne.