Kedelplade 101 til WordPress-plugin: Sådan kommer du i gang

Siden starten af ​​WordPress-plugins for ca. 10 år siden har ikke meget ændret sig i den måde, vi skriver dem på. Der er en hovedplugin-fil med et header efterfulgt af Vildtvesten grundlæggende. Bortset fra at bruge kroge, er der ingen standardiseret måde at fremstille plugins på.


Dette er ikke nødvendigvis et problem. Der er mange enkle plugins, der ikke har brug for en styrende ramme, og der er nogle mennesker, der kan skrive perfekt sammenhængende procedurekode. Når det er sagt, er kvaliteten af ​​kode i plugins generelt ikke den bedste, en ramme eller metodologi vil gå langt i at hæve den.

I denne artikel skal jeg se på en mulig løsning – WordPress Plugin Kedelplade. Det er ment at være et udgangspunkt for plugin-udvikling, en objektorienteret måde at skabe et standardiseret plugin. Da det er kodet med OOP-principper, er det hovedsageligt beregnet til mellemliggende kodere, men du kan nemt bruge det, selv som en begynder, hvis du ved, hvad der går hen. I slutningen af ​​denne artikel skal du vide, hvad der er, og hvordan du kan komme i gang med det – uanset din kodningsoplevelse.

Generel filstruktur

Kedelpladen er beregnet til at blive brugt som et Github-lager, så hovedkataloget indeholder filer, der ofte findes i Github-repos. Filen README.md er en generel readme og vises på din hovedlagerside som beskrivelse. CHANGELOG.md-filen er til registrering af ændringer mellem version og .gitignore-filen er til at indstille filer, som git skal ignorere, når man arbejder med filer.

Hovedmappen her plugin-navn er, hvor plugin gemmes. Dens struktur følger WordPress-arkivet, og du kan "tjekke ind" denne mappe til SVN plugin repo. Som standard indeholder den aktivmappen, der gemmer billeder og skærmbilleder til dit plugin, og bagagerumsmappen, der indeholder koden for plugin.

Trunkmappen er det, der indeholder plugin, du kan indsætte denne mappe i en WordPress-installation og aktivere dit plugin. Vi ser nærmere på indholdet i denne mappe lidt senere. Før vi gør det, lad os oprette butik.

ny-plugin

Opsætning af det hele

At have alle disse mapper og SVN / Git-awesomeness ét sted er alt sammen godt og godt, men hvordan kan du faktisk bruge dette? Du kan ikke tjekke hele mappen direkte ind i din plugins-mappe, den fungerer simpelthen ikke. Det er kun besværligt at tjekke bagagerumskataloget, plus at du ikke har adgang til filer uden for det bibliotek.

Lad mig vise dig min foretrukne måde at opsætte ting på. Jeg har en mappe på min computer med følgende struktur:

  • github
    • Top-Forfattere
    • Easy-Udvalgte-billeder
    • Twitter-bruger-Timelines
  • html
    • wp-admin
    • wp-indhold
    • wp-omfatter
    • andre wordpress-filer
  • wordpress
    • Top-forfattere
    • let-featured-billeder
    • twitter-bruger-tidslinjer

HTML-mappen er det sted, hvor WordPress er installeret. Github-mappen indeholder alle mine WordPress-plugins fra Github. WordPress-mappen indeholder de samme plugins, der blev trukket via SVN fra WordPress-arkivet.

Oprettelse af et Symlink

Det første skridt, jeg tager, er at oprette en vaniljeversion af WordPress Plugin Boilerplate på Github. Jeg tjekker det derefter ud i min github-mappe. Dernæst opretter jeg en symlink mellem bagagerumsmappen i wp-content / plugins-biblioteket i min WordPress-installation.

Symlinks er en henvisning til en fil eller en mappe, der løber op til dens mål, som du ville forvente. Slutresultatet af dette er, at hvis du kobler et plugin hvor som helst på dit system til dit WordPress-bibliotek, fungerer det helt fint. Dette giver dig følgende fordele:

  • Du kan gemme plugins andre steder.
  • Du kan symlink en mappe fra et større lager.
  • Du kan symlink det samme plugin til flere installationer.

Det er nemt at oprette en symlink fra terminalen eller kommandoprompten på Windows. Jeg foreslår at åbne en og navigere til plugins-biblioteket til din WordPress-installation. Skriv derefter følgende kommando:

# Til OSX eller Linux
ln -s / absolute / path / to / github / My-Plugin-Name / my-plugin-name / trunk my-plugin-name

# Til Windows
mklink / j C: \ absolut \ sti \ til \ github \ My-plugin-name my-plugin-name

Dette opretter et link fra den første sti til den anden. Den første sti er den absolutte sti til bagagerumskatalogen i dit Github-arkiv. Det andet er kun navnet på den mappe, du vil linke den til, når du allerede er i plugins-biblioteket til din WordPress-installation.

Når det er gjort, skal du se dit nye plugin dukke op, ligesom på billedet ovenfor. Vi bliver nødt til at tilpasse ting, men vi har nu vores plugin, der kører fra Github-arkivet, hvilket gør udvikling til masse nemmere.

Omdøbning

Der er en masse mapper og filer i bagagerumets bibliotek, lad os begynde at omdøbe dem! Først og fremmest anbefaler jeg, at du navngiver dit arkiv ved hjælp af bindestreger og store bogstaver, noget lignende: My-Awesome-plugin. Hovedmappen inden for skal kaldes ‘my-awesome-plugin’. Jeg anbefaler at bruge denne konvention i hele plugin.

Omdøbning af filerne er let i OSX. Åbn alle mapper, og vælg alle de filer, der har streng-plugin-navnet i. Højreklik for at omdøbe alle 14 filer og batch omdøbe partiet.

omdøb

Det vil være lidt vanskeligere i Windows, se på dette HowToGeek artikel for mere info, eller bare gå en efter en.

Vilkår som "plugin-navn" og andre variationer er også spredt over hele filindholdet. Du kan bruge Sublime, Atom.io eller andre i stand til tekstredaktører, der skal udskiftes masse i flere filer. Her er en liste over, hvad du skal udskifte (sørg for at foretage store og små bogstaver, søg-erstatter).

  • PLUGIN_NAME skulle blive min_skrækkelige_plugin
  • PLUGIN_NAME skulle blive My_Awesome_Plugin
  • plugin-navn skulle blive min awesome-plugin

Når du er færdig, skal du sørge for at udfylde hovedfilens overskriftskommentar (my-awesome-plugin.php) for at tilpasse den til dine behov.

Indholdsfortegnelse

Der er meget indeholdt i WordPress Plugin Boilerplate. Ideen er at opstille strenge retningslinjer for, hvor du kan placere ting. Der er et specifikt sted at tilføje dine kroge, f.eks. Et standard sted at tilføje frontend-funktioner og så videre. Lad os se på de vigtigste dele af rammen.

Bemærk, at jeg vil henvise til filerne, som de er blevet omdøbt, for eksempel: inkluderer / class-my-awesome-plugin.php. Hvis du har omdøbt dit plugin til noget andet, skal du huske, at my-awesome-plugin-delen af ​​filnavnet vil være anderledes for dig.

Aktivering, deaktivering og afinstallation

Enhver kode, du vil køre, når plugin er aktiveret, skal gå i inkluderer / my-awesome-plugin-name-activator.php. I denne fil er der en klasse ved navn My_Awesome_Plugin_Activator, hvori der er en aktiveringsmetode (), som du skal bruge.

Bare rolig, hvis du ikke er klar til at få fart på genstande endnu, at vide, hvor du skal sætte tingene vil være nok til at komme i gang.

Den kode, du har brug for for at køre ved deaktivering, skal placeres i inkluderer / my-awesome-plugin-name-deactivator.php. Metoden aktivering () i My_Awesome_Plugin_Deactivator er det, du skal bruge.

Synes du, dette er lidt for kompliceret? Jeg beskylder dig ikke! Når du begynder at bruge objektorienterede koncepter, kan du se fordelen ved denne procedurekode. Hvis ikke andet, giver det et meget åbenlyst sted at placere din kode, som i sig selv er en enorm hjælp.

Til afinstallation er den anbefalede metode at bruge uninstall.php, hvilket er, hvad WordPress Plugin Boilerplate gør. Din kode skal placeres i bunden af ​​filen.

Tilføjelse af kroge

Kroge håndteres utroligt af WordPress Plugin Boilerplate, men det kan virke en smule uhåndterligt i starten. Alle dine kroge skal placeres i inkluderer / class-my-awesome-plugin.php. Mere specifikt inden for klassen My_Awesome_Plugin inden for to metoder:

  • define_public_hooks (), når du tilføjer en krog, der bruges i front-enden
  • define_admin_hooks (), når du tilføjer en krog, der bruges på bagsiden

I stedet for at bruge add_action () eller add_filter () som sædvanligt, skal du gøre tingene lidt anderledes. Sådan ændrer du for eksempel indholdet af indlæg.

$ dette->loader->add_action (‘the_content’, $ plugin_public, ‘modify_post_content’);

Den første parameter er navnet på krogen, den anden er en henvisning til det offentlige eller admin-objekt. For offentlige kroge skal dette være $ plugin_public, for admin hooks skal det være $ plugin_admin. Den tredje parameter er den tilsluttede funktion.

Selvom det ser ud til at være mere indviklet, standardiserer det tilføjelsen af ​​kroge fuldstændigt og opdeler dem i to forskellige grupper under processen.

Offentlig og administratorindhold

WordPress Plugin Boilerplate opdeler kroge i admin / offentlige grupper, men det er ikke alt. Det opdeler al din kode på samme måde ved at bede dig om at skrive offentligt-kendt kode i den offentlige mappe og admin-vendende kode i admin-mappen.

Begge mapper indeholder mapper css, js og partials. Du skal placere brugte CSS / JS-aktiver i disse mapper og skrive skabeloner og andre genanvendelige HTML-bits i mappen Delvis. Det er okay at oprette nye filer i delmappen, faktisk er det det, den er der til!

Du skal også skrive dine tilsluttede funktioner i disse mapper inden for klassen i de respektive mapper. Da vi koblet funktionen modify_post_content til the_content ovenfor, fortalte vi WordPress Plugin Boilerplate, hvor vi også skal se efter den. Da vi føjede dette til den offentlige side, forventer WordPress Plugin Boilerplate, at den bliver defineret i klassen My_Awesome_Plugin_Public, der er i den offentlige mappe. Opret blot denne funktion i klassen og skriv alt andet som sædvanligt.

Ressourcer og afhængigheder

Hvis du vil bruge eksterne ressourcer, f.eks TGM-plugin-aktivering, skal du tilføje det til mappen inkluderer. TGM er en enkelt fil med navnet class-tgm-plugin-activation.php, der skal inkluderes i filen class-my-awesome-plugin.php inden for metoden load_dependency ():

kræver_once plugin_dir_path (dirname (__FILE__)). ‘Includes / klasse-TGM-plugin-activation.php’;

Oversigt

Er du forvirret af alle filnavne og funktioner? Bare rolig, du får fat på det temmelig hurtigt. Faktisk ændrer du normalt kun tre filer:

  • inkluderer / class-my-awesome-plugin.php, hvor du tilføjer alle dine kroge og afhængigheder.
  • public / class-my-awesome-plugin-public.php er hvor du tilføjer alle offentlige ansigtsfunktioner.
  • admin / class-my-awesome-plugin-admin.php er hvor alle admin-vendende funktioner går.

Ved det første kan brug af WordPress Plugin Boilerplate virke som en besvær, men det vil betale sig til sidst. Du kommer tilbage et år senere og ved, hvor alt er, din plugin-udvikling vil blive standardiseret på tværs af produkter, og andre udviklere kan også finde ud af, hvad der foregår.

Til sidst skal du ikke glemme, at et plugin, der indeholder en simpel widget, muligvis ikke har brug for en sådan ramme. Selvom brugen af ​​WordPress Plugin Boilerplate ikke bremser dit plugin, stopper det visningen, hvis alt hvad du behøver er et par enkle kodelinjer!

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map