Endelige tips for beste praksis i WordPress Development

Velkommen til siste del av denne serien. Hvis du nettopp ankom, vennligst sjekk våre to tidligere artikler. Vi har så langt dekket følgende emner:

Tips for beste praksis i WordPress Development

  • WordPress-kodingsstandarder
  • Unngå globale navneområder kollisjoner (prefiks og bruk av klasser)
  • Kode kommenterer
  • Sikkerhet

Flere tips for beste praksis i WordPress Development

  • Korrekt måte å legge til Skript og stiler (registrer, legg inn og lokaliser)
  • Ajax ringer
  • Filtre og handlinger

I denne siste artikkelen skal jeg snakke om tre viktige ting, selv om de ikke påvirker plugin-operasjonen, er de avgjørende hvis du vil levere en kvalitetstillegg.

1. Debugging

Det første du bør gjøre når du kodes et plugin, er å aktivere feilsøkingsmodussom WordPress anbefaler. På den måten ser du alle feil, advarsler og problemer.

For å aktivere feilsøkingsmodus enkelt sted i din wp-config.php

define ('WP_DEBUG', true);

Når du har lastet opp siden, vil du se alle advarsler og problemer sammen med andre meldinger som avviklet WordPress-funksjoner. Hvis du vil levere et kvalitetsprodukt, må du kontrollere at ved hjelp av pluginet med feilsøkingsmodus aktiveres eller deaktiveres resultatet i det samme (ingen feil, advarsler eller merknader i det hele tatt).

Hvis du i stedet vil lagre feilene i en fil og ikke vise dem i HTML-en, kan du gjøre det ved å legge sammen med WP_DEBUG følgende linjer.

// alle feilene vil bli lagret i en debug.log loggfil inne i / wp-content / directory definere ('WP_DEBUG_LOG', true); // ikke vise feil i HTML definere ('WP_DEBUG_DISPLAY', falsk);

En annen feilsøkingsinnstilling som jeg bruker mye som lagrer alle databasespørsmål i en matrise er følgende:

define ('SAVEQUERIES', true);

Vanligvis bruker jeg alle disse (spesielt den siste) med Debug Bar plugin og Debug Bar konsoll. Hvis du ikke kjenner dem, kan du gå og ta en kopi og begynne å feilsøke pluginene og temaene dine. Du vil se hvor lett det er å gjøre det. 

Du kan også sjekke lister over plugins jeg bruker til utvikling i Wp Favs.

2. Dokumentasjon

Dokumentere alle aspekter av plugin eller tema vil gjøre brukerne og livet ditt mye enklere. De vil være i stand til å lage plugin eller tema arbeid ved å følge en guide eller video eller en kombinasjon av begge og du vil spare mye tid med støtte billetter og endeløse e-poster.

Jeg anbefaler å dele all dokumentasjon i kategorier eller seksjoner som er viktigst:

  • Installasjon
  • konfigurasjon
  • Rask bruk
  • Vanlige problemer
  • Krav

Deretter kan du legge til resten av seksjoner eller kategorier, avhengig av tema eller plugin. Hvis du sjekker dokumentasjonssiden for WordPress Social Invitasjoner, vil du se hva jeg mener. 

Hvis du la til filtre og kroker som jeg nevnte i forrige artikkel, er det en god ide å lage en filter / handling referanseside som forklarer hva de gjør.

Hjelper faner

Hjelpfaner er en annen måte å gi brukerne direkte hjelp til pluginet ditt, i stedet for å omdirigere dem til nettstedet ditt. De brukes normalt til å gi informasjon om at skjermen er i bruk i det øyeblikket.

For eksempel, på en av mine plugin kalt Social PopUP bruker jeg en hjelpefane for å forklare de tilgjengelige kortkodene. 

Hvis du bruker en klasse i pluginet ditt og du vil legge til hjelpefanen til en egendefinert innleggstype, kan du gjøre noe som helst:

/ ** * Initialiser pluginet ved å laste inn adminskript og stiler og legge til en * innstillingsside og -meny. * * @since 1.0.0 * / function __construct () [...] // Hjelp Tab add_action ('load-post.php', array ($ dette, 'my_admin_add_help_tab')));  / ** * Legg til hjelpefane til spucpt-posttypen * @since 1.0 * @return void * / function my_admin_add_help_tab () $ screen = get_current_screen (); hvis ('spucpt'! = $ skjerm-> id) return;  // Legg til my_help_tab hvis posttype er spucpt $ screen-> add_help_tab (array ('id' => 'my_help_tab', 'title' => __ ('Shortcodes'), 'content' => 'Hei innhold går her' ,));  

Det er veldig viktig at du kontrollerer at gjeldende skjerm-ID samsvarer med egendefinert innleggstype eller hjelpefanen vises overalt.

Hvis du i stedet la til en tilleggsside, kan du bruke koden som brukes som eksempel i Codex.

add_help_tab (array ('id' => 'my_help_tab', 'title' => __ ('Min Hjelp-fanen'), 'content' => '

'. __ ('Beskrivende innhold som vil vises i Min Hjelp-tabulator går her.'). '

',)); ?>

I min mening er hjelpeflikene ikke veldig synlige for brukerne, og de fleste av dem vet ikke engang at de eksisterer, men det er en god praksis å inkludere noen hjelpelinjer i selve plugin-modulen..

3. Internasjonalisering

Internationalisering også kjent som i18n (det er 18 bokstaver mellom i og n) det er glasur på kaken av et plugin eller tema. Som du allerede vet WordPress, brukes den av folk fra hele verden, så når du leverer et plugin eller tema, må vi være sikre på at de lett kan oversette det til morsmålet.

Hva er forskjellen mellom internasjonalisering og lokalisering?

Først bør vi lære betydningen av disse to ordene også kjent som i18n og i10n. Internasjonalisering refererer til prosessen med å lage en oversetterbar plugin eller et tema mens lokalisering er i utgangspunktet handlingen med å gjøre det.

Hvordan håndterer WordPress Translations?

WordPress bruker det berømte gettext-biblioteket som forklart med noen få ord, vi kan si som fungerer slik:

  • Utviklere vikler oversettbare strenge i spesielle gettext-funksjoner
  • Spesialverktøy analyserer kildekodefiler og trekker ut de omsettelige strengene i POT-filer (Portable Objects Template)
  • Oversettere oversetter POT-filene og resultatet er en PO-fil (POT-fil, men med oversettelser inne)
  • PO-filer er kompilert til binære MO-filer, noe som gir raskere tilgang til strengene ved kjøretid.

Hvordan lager vi oversatte strenger?

Det første du må gjøre er å bestemme en tekst-domene som vil bli brukt til å pakke inn alle pluginene dine eller temaoversettelsene. Tekstdomenet bør samsvare med plugin-sluggen din. 

Det er flere måter å opprette de translaterbare strengene avhengig av om du lager variabler, ekko noe osv. De vanligste funksjonene er __ ()  og _e () . La oss se noen eksempler nedenfor:

// skape en variabel $ hei = __ ('Hei, jeg er en oversettbar streng', 'My-text-domain'); ekko '

'. __ ('Hei, jeg er en oversettbar streng', 'my-text-domain'). '

'; // for å gjøre et ekko du kan bruke _e ('Hei, jeg er en oversettbar streng', 'min-tekst-domene'); // Når du har variabler i strengen du gjør: printf (__ ('Vi slettet% d innlegg', 'my-text-domain'), $ telle); // Eller flere variabler printf (__ ('Ditt navn er% 1 $ s, og etternavnet ditt er% 2 $ s.', 'My-text-domene'), $ navn, $ etternavn);

En annen kul funksjon som du kan bruke er _n () som det brukes til flertall. Disse funksjonene tar 4 argumenter:

  • singular - singular form av strengen
  • flertall - flertallet av strengen
  • telle - antall objekter, som vil avgjøre om entall eller flertallsform skal returneres
  • Tekstdomenet - Plugin-tekstdomenet

Kommer tilbake til vårt forrige eksempel, med plurals vil se noe ut som:

printf (_n ('Vi slettet ett innlegg.', 'Vi slettet% d innlegg.', $ count, 'my-text-domain'), $ count);

Hvis du, uansett, må oversette strenger i JavaScript, kan du passere alle strengene ved å bruke wp_localize_script () funksjon som vi diskuterte på den andre artikkelen i denne serien.

wp_enqueue_script ('script-handle', ...); wp_localize_script ('script-handle', 'objectL10n', array ('alert' => __ (' Dette er en varselmelding ',' my-text-domain '),' submit '=> __ (' Send ' mitt-tekst-domene '),));

Aktiverer oversettelser i våre pluginprogrammer

Vi har allerede lagt til alle oversetterbare strengene rundt plugin-modulen vår og nå er det på tide å aktivere det. For å gjøre det gjør du enkelt:

funksjon myplugin_init () $ plugin_dir = basename (dirname (__FILE__)); load_plugin_textdomain ('my-text-domain', false, $ plugin_dir);  add_action ('plugins_loaded', 'myplugin_init');

Dette stykke kode vil prøve å laste fra roten til plugin-en din MO-fil my-tekst-domene- Lokalitet.mo . Avhengig av språkinnstillingene i wp-config.php, erstattes locale -delen med språkkoden. For eksempel hvis min wp-config.php er konfigurert som:

define ('WPLANG', 'es_ES');

Filen som skal lastes er my-text-domain-es_ES.mo. For temaer er ganske lik, trenger du bare å inkludere i din functions.php følgende:

load_theme_textdomain ('my_theme_textdomain');

De hovedforskjell er at denne funksjonen vil se etter Lokalitet .mo i stedet for my_theme_textdomain- lokalitet .mo som vi så på forrige eksempel.

Du kan lese mer om l18n i WordPress Codex.

Konklusjon

Vi er på slutten av denne serien, og jeg håper du likte å lese den så mye som jeg skrev det. Som jeg sa tidligere skrev jeg denne serien og tenkte på min begynnelse som utvikler. Jeg prøvde å samle all informasjonen som jeg anser viktig for å gjøre en god plugin, som i stor grad oppsummerer alt det som allerede er forklart i Codex. Selv om jeg nok har sluppet ut mye, tror jeg det er nok å ha solid grunnlag.

Jeg vil gjerne se deg dele dine tanker, tips og ideer for en solid utvikling i kommentarene.