, bevarelse af wordpress widgets: del 2 af 2.,,,,, andel,,,,,,,, 3,,,,,,, det cyber - mandag envato tuts + kurser vil blive reduceret til $3.- og' t miss.,, i den første post i denne serie, vi diskuterede grundene til, at wordpress plugins bør behandles mere som større software - projekter (men ofte ikke) og en sag for anvendelse af velorganiserede kode i et forsøg på at gøre vores stik af projekter mere pålidelige.alt dette blev gjort i forbindelse med udviklingen af en wordpress widget.,,,,,,, det er widgets er ikke den eneste form for plugins, der kan udvikles for wordpress.ansøgningen også støtter plugins at udvide sine funktioner ved hjælp af kroge beliggende i ansøgningen.som sådan widgets er ikke den eneste form for stik af, at kunne drage fordel af en boilerplate.i denne forelæsning, vi skal definere, hvad wordpress kroge, hvor de arbejder, og hvorfor de er gavnlige.vi vil tage et kig på min wordpress dims boilerplate, og hvordan gearing i nye projekter i forbindelse med et eksempel anvendelse.,, forståelse, kroge, aktioner og filtre, før der udvikles plugins, det er vigtigt at forstå, wordpress "model for fat i anvendelse og de forskellige mellem aktioner og filtre. hooks er områder i den centrale wordpress anvendelse, der giver dig mulighed for at registrere deres kode for gennemførelse.bare læg din stik af registre, selv med wordpress på et bestemt punkt i gennemførelsen.når wordpress når det punkt af gennemførelsen (enten i at redde oplysninger, at oplysninger eller et andet punkt), det tænder din kode.aktioner, som er en type - wordpress stiller til rådighed for dig, til at benytte sig af, når en bestemt begivenhed indtræffer i anvendelse livscyklus.nogle af disse punkter er, når et tema er aktiveret, når en stilling er reddet, eller når stil plader bliver gjort.generelt, hvis du leder efter at indsætte nogle slags kunder funktioner på et punkt i wordpress livscyklus, der kan forventes en aktion, klo, der er til rådighed, filtre er en type - wordpress stiller til rådighed for dig at manipulere oplysninger, før de sender det til databasen eller sende den til at gøre i browseren.bare læg den, wordpress vil viderebringe indholdet til deres funktion og derefter fortsætte med sin proces med, hvad du har tilbage.hvis du leder efter at manipulere med data fra før at redde det, eller at det, din bedste mulighed er at anvende filter.,, let nok, ikke?på toppen af, at wordpress har solid dokumentation for, at aktioner [1] og tilføje filtre [2].kan du nå meget mere om plugins i stik af api - [3] i wordpress codex [4].,, stik af boilerplate, hvis de læser den foregående artikel, så du kender allerede den dims api - grænseflade.det er præcis det, det kræver en konstruktør og ikke mindre end tre funktioner for at få noget arbejde.fordi plugins har den fleksibilitet, finder i en række punkter i wordpress proces, stik af api - er en smule mindre struktureret.det betyder ikke, at vi ikke kan fartøjer, en form for boilerplate fra og til at skabe vores plugins.efter alt, er de stadig består af nogle fælles funktioner:,, centrale stik af kode, stil ark, javascript, lokalisering af filer, avance, billeder, der svarer til vores wordpress dims boilerplate, vi kan fælde vores model fortegnelse at se sådan ud:,, det ser bekendt ud, ikke?det vigtigste aspekt af stik af boilerplate ikke detaljerne i registret struktur, men vi vil undersøge en smule i fremtiden), men organisationen af de centrale stik af kode selv.stik af, skelet, stik af kan udvikles ved hjælp af en håndfuld funktioner eller ved hver enkelt funktion i en klasse i et samt tilgang.jeg er en fan af sidstnævnte, og min boilerplate repræsenterer.her er de stik af definition:, <?php /* stik af navn, stik af uri: todo beskrivelse: todo version 1.0. forfatter: todo forfatter uri: todo kørekort: ophavsret 2011, ([email protected]) programmet er gratis software; man kan omfordele og /eller ændre det, inden for rammerne af den nationale samlingsregering i offentligheden, kørekort, 2. udgave, som blev offentliggjort af den gratis software - fonden.dette program er fordelt i det håb, at det vil være nyttigt, men uden nogen garanti, selv uden underforstående garantier for merchantability eller egnethed til et bestemt formål.se den nationale samlingsregering generelle offentlige licens for flere detaljer.du skulle have modtaget en kopi af den nationale samlingsregering generelle offentlige kørekort med dette program; hvis ikke, skrive til gratis software - instituttet, inc., 51, franklin st. femte sal, boston, mor 02110-1301 usa * ///todo: omdøbe klassen til et rigtigt navn, for din stik af klasse, {* -------------------------------------------- * * * * * * * -------------------------------------------- konstruktøren * /* * * initializes det stik af med lokalisering, filtre og forvaltning.* /funktion __construct() (//definere constnats hele stik af $- > init_plugin_constants(); load_plugin_textdomain (plugin_locale, falske dirname (plugin_basename (__file__))./lang) /* *, * definere skik funktioner for din stik af.den første parameter i * add_action /add_filter opkald er kroge, som din kode burde fyre.* * den anden parameter er funktion navn inden for denne kategori.se billetterne * senere i filen.* * yderligere oplysninger: http: //codex. wordpress. org /plugin_apihooks.2c_actions_and_filters * /add_action ('todo, system ($, action_method_name ')); add_filter ('todo, system ($, filter_method_name')} //, hvis} //ende konstruktøren /* * * * * * * * -------------------------------------------- centrale funktioner --------------------------------------------- * /* * * note: aktioner der er punkter i forbindelse med gennemførelsen af en side eller proces * livscyklus, at wordpress brande.* /funktion action_method_name() (//, definere deres aktion metode her} //ende action_method_name /* * * note: filtre punkter af gennemførelsen, som wordpress ændrer data før reddet det eller sende det til browseren.* /funktion filter_method_name() (//, definere deres filter metode her} //ende filter_method_name /* * * * -------------------------------------------- private funktioner --------------------------------------------- * /* * * initializes konstanter, der anvendes for nemheds skyld i * stik af.* /privat funktion init_plugin_constants() {*, * * dette giver den entydige identifikator for din stik af, der anvendes i * lokalisere strengene, der anvendes i.* * for eksempel: wordpress dims boilerplate indbyggere.* hvis (!defineret ('plugin_locale ')) (definere ('plugin_locale "," stik af navn locale');} //hvis /*, * * definerer dette som navnet på din stik af.det er, hvad viser * i widgets område af wordpress.* * for eksempel: wordpress dims boilerplate.* hvis (!defineret ('plugin_name ')) (definere ('plugin_name "," stik af navn)) //hvis /*, * * det er kuglen i din stik af, der anvendes i starter med den wordpress api - grænseflade.* dette bør også være * fortegnelse, hvor din stik af er bosat.use bindestreger.* * for eksempel: wordpress dims boilerplate * /er.defineret ('plugin_slug ')) (definere ('plugin_slug "," stik af navn skovsnegl ");} //, hvis} //ende init_plugin_constants /* * * hjælper funktion for registrering og lastning af manuskripter og styles.* * @ navn legitimation til at registrere wordpress * @ file_path vejen til den egentlige fil * @ is_script frivilligt argument for, hvis det kommende file_path er en javascript kilde fil.* /privat funktion load_file ($navn, $file_path, $is_script = falske) ($url = wp_plugin_url.$file_path. $file = wp_plugin_dir.$file_path; hvis (file_exists ($fil)) (hvis ($is_script) (wp_register_script ($navn, $url); wp_enqueue_script ($navn);} andre (wp_register_style ($navn, $url); wp_enqueue_style ($navn)) //, hvis} hvis) ////ende _load_file} //ende klasse //todo: ajourføring af instantiation ring af din stik af navnet på den kategori definition af nye todo();?> de fleste ide 's har en funktion, der indeholder alle udestående, er, - - så jeg har dem i kodeksen, let at finde, hvad der skal gøres i udvikling.bemærker, at der er tre primære områder af kode:,, konstruktøren.denne funktion er ansvarlig for at definere en konstanter, der anvendes i kodeksen, med angivelse af eventuelle lokalisering filer, og registrering af alle aktioner og filtre med wordpress. centrale funktioner er den faktiske funktion definitioner er registreret i den pågældende, der er fyret efter i wordpress' henrettelse, hjælper funktioner henviser til funktioner, der bruger jeg, at hjælp til gennemførelse af informa væk fælles funktioner (f.eks. registrering af javascripts og stylesheets).,, konstatere, at stik af udvikling, afviger fra den dims udvikling i, at der ikke er flere funktioner, der kan forventes.faktisk, du har kun brug for en konstruktør.der fra alle opgaver som defineret i add_action eller add_filter opkald og deres ansvar at gennemføre, mening?lad os se på med denne kedel plade i et enkelt eksempel. en arbejdsgruppe, f.eks. med din blog er rss foder, wordpress giver kroge til næsten punkt af gennemførelsen, som du kan forestille dig.i dette eksempel, vi får i den post, således at processen med henblik på at indføre en speciel besked.sagen er, at vi kun ønsker at vise sagde besked inden for rammerne af en rss læser. for det første krav:,, vise en meddelelse på meter af hver post, bør kun forekomme i rss læsere, budskabet bør indeholde et link til webstedet for den post, der er baseret på denne det ser ikke ud til, at vi bliver nødt til at anvende alle javascript, css eller - skabe vores stik af, så vi kan reducere vores stik af boilerplate til kernen, stik af kode og lokalisering filer:,, på dette punkt, kan vi begynde stubbing ud boilerplate med navn og stik af konstanter: /* * * initializes konstanter, der anvendes for nemheds skyld i * stik af.* /privat funktion init_plugin_constants() (hvis (!defineret ('plugin_locale ')) (definere ('plugin_locale, rss note locale');} //ende hvis (!defineret ('plugin_name ')) (definere ('plugin_name, rss note)} //ende hvis (!defineret ('plugin_slug ')) (definere ('plugin_slug, rss note skovsnegl ");} //, hvis} //ende init_plugin_constants, næste, er vi nødt til at overveje, hvilken type krog er påkrævet for at manipulere med indholdet.husker de tsince forsøger vi at tilføje noget til indholdet proir at gøre det i browseren, får vi brug for et filter.herfra kan vi slukke konstruktøren: /* * * initializes det stik af med lokalisering, filtre og forvaltning.* /funktion __construct() (//definere constnats hele stik af $- > init_plugin_constants(); load_plugin_textdomain (plugin_locale, falske dirname (plugin_basename (__file__))./lang '); //tilføje bemærkninger til både uddrag og de vigtigste foder add_filter ('the_content, system ($, display_rss_note')); add_filter ('the_excerpt_rss, system ($, display_rss_note ')} //ende konstruktør, konstaterer, at den funktion ved hjælp af to filter - en til the_content [5] og en for the_excerpt_rss [6].vi gør dette, fordi nogle brugere, vælge at offentliggøre et uddrag af deres blog, kun snarere end hele indholdet, og vi ønsker at sikre, at vi er ved at fange begge tilfælde. næste, lad os gennemføre funktion definition, der vil sætte de budskab til resten af post: /* * * vedlægges en kort besked på meter af hver post i en rss læser * påmindelse til brugerne til at besøge din hjemmeside.* /offentlige funktion display_rss_note ($indhold) (hvis (is_feed()) ($indhold. = < div klasse = "rss note" > "$indhold. = < p > $indhold. = __ ('thanks til at læse.vær sikker på at indhente resten af min stillinger, plugin_locale); $indhold. = < en href = ".get_bloginfo ('url). "> "$indhold. = get_bloginfo ('name) $indhold. = < /a >!"og $indhold. = < /p > $indhold. = < /div > «) //, hvis afkast $indhold;} //ende display_rss_note, konstatere, at den funktion, accepterer en parameter, der henvises til i de $indhold variabel.wordpress er i sig selv, at denne data i funktion.for disse filtre, vi har at gøre med indholdet af en blog, efter hvad vi tilføje, at det må være forbundet, så det er føjet til udgangen af det. dette budskab, vi tilføjer blot siger, "tak for det!vær sikker på at indhente resten af min stillinger på [blog navn] ".ved anvendelse af get_bloginfo() [7] funktion.selvfølgelig, du kan opdatere det at læse, hvad du vil.endelig bemærker, at vi har pakket ind i et betinget af, at den kontrol, de is_feed() [8] funktion.dette er vigtigt, da vi ønsker, at denne kodeks til at skyde, hvis indhold er blevet sendt via en rss foder. det er ikke så slemt, vel?du kan hente den fulde version af den erhvervsaktive kildekode (herunder de tilhørende gør) for dette stik af med github eller her fra wptuts.den boilerplate er også tilgængelige på github,., i denne serie er ikke kun bidrage til at give en vejledning til wordpress stik af api -, men også at yde en sag, og boilerplates for at gøre det nemmere at behandle og opretholde wordpress plugins som enhver anden software - projektet.,http://codex.wordpress.org/function_reference/add_actionhttp://codex.wordpress.org/function_reference/add_filterhttp://codex.wordpress.org/plugin_apihttp://codex.wordpress.org/main_pagehttp://codex.wordpress.org/function_reference/the_contenthttp://codex.wordpress.org/template_tags/the_excerpt_rsshttp://codex.wordpress.org/function_reference/is_feedhttp://codex.wordpress.org/function_reference/get_bloginfo,