integrering af google rige stumper i en wordpress tema

, at google rige stumper i en wordpress tema,,,,, 4,,,,,,,,,,,, 70,,,,,,, det cyber - mandag envato tuts + kurser vil blive reduceret til $3.- og' t miss.,, vi er alle bekendt med den måde, hvorpå google viser søgeresultater – med en side titel og et lille indlæg af tekst for hvert resultat.med google rige stumper, vi kan tilføje nyttige oplysninger til web - resultat snippet gøre det skiller sig ud fra andre resultater og i sidste instans tiltrækker flere besøgende.der er allerede plugins at yde denne form for funktioner i wordpress, der er situationer, hvor udsætning af en tredjemand stik af, ikke er hensigtsmæssigt.i denne forelæsning, vi skal integrere mikrodata format til wordpress tema - udvise en kulinarisk opskrift, og gøre den forenelig med google rige stumper krav.,,, introduktion til google rige stumper, lad os se på et eksempel på en rig snippet:,, jeg har fremhævet i de stumper for yderligere oplysninger, at google "lyder" fra den side.som du kan se, rige stumper tilføje nogle meget nyttige oplysninger til søgemaskine resultater.i tilfælde af opskrifter, at oplysninger omfatter et foto, opskrift rating, kalorier og den samlede tid, det tager at forbered antennen.alle disse yderligere oplysninger giver brugerne bedre følelse af indholdet på den side og gør det mere sandsynligt, at brugerne vil klik på linket og besøg din hjemmeside.,, stumper for hver content type ser lidt anderledes, og give de oplysninger, der er relevante for den specifikke indhold.,,, hvordan vi gør det muligt for rige stumper?hemmeligheden bag rige stumper er struktureret, semantisk avance, der tillader, at google forstår side indhold.så alt hvad du skal gøre, er korrekt - din indhold til at beskrive den særlige type oplysninger på din hjemmeside.i denne forelæsning vil vi fokusere på en sikker opskrift, men google støtter rige stumper af en række andre indhold former, nemlig:,, undersøgelser, produkter, virksomheder og organisationer, arrangementer, musik, for flere oplysninger om rige stumper og indhold typer besøg google hjælpe center.,,, når det drejer sig om mærkning, deres indhold, er der tre - formater til at vælge:,, mikrodata, microformats, rdfa, i denne forelæsning, vil vi være at integrere mikrodata forhøjelse med schema.org egenskaber, som anbefalet i google rige stumper "dokumentation.det er værd at bemærke, at schema.org ordforråd, anerkendes ikke kun af google, men også af andre store udbydere – - jubii!og microsoft, besøg schema.org for flere oplysninger og eksempler på, hvordan vi kan gennemføre den i din kode.,, trin 1 skabe opskrift sædvane efter type, eftersom vi vil skrive en hel masse kode, vil vi skabe en separat fil, opskrift ud. på, at holde alle stumper og omfatter den ved hjælp af folkesundhedsprogrammet funktion, omfatter.for at gøre det, åbne, functions.php, sagen i deres nuværende tema fortegnelse, og pasta følgende stykke kode i slutningen: omfatter ('recipe-config. folkesundhedsprogrammet), skabe en ny filen, opskrift ud. folkesundhedsprogrammet.den kode, der følger heraf, skal lægges til det dossier. lad os begynde med at skabe en ny skik efter type kaldes opskrift., add_action ("lokalitet, register_my_culinary_recipe); funktion register_my_culinary_recipe() {$etiketter = system (" navn "= > _x (" opskrifter, culinary_recipes ")," singular_name = > _x ("opskrift, culinary_recipes"), add_new = > _x ("tilføjer nye, culinary_recipes"), add_new_item = > _x ("tilføje nye opskrift, culinary_recipes"), edit_item = > _x ("edit opskrift, culinary_recipes"), new_item = > _x (ny opskrift, culinary_recipes "), view_item = > _x (betragtning opskrift", "culinary_recipes "), search_items = > _x (finde opskrifter, culinary_recipes"), not_found = > _x (ingen opskrifter fandt, culinary_recipes "), not_found_in_trash = > _x (ingen opskrifter i papirkurven, culinary_recipes')" parent_item_colon = > "," menu_name = > _x ("opskrifter, culinary_recipes')); $args = system (" mærkning "= > $etiketter," offentlig "= > sandt, publicly_queryable = > sandt, show_ui = > sandt, show_in_menu = > sandt, show_in_nav_menus = > sandt, exclude_from_search = > falske, hierarkisk = > falske, has_archive = > sandt, skrive "= > system ('slug = >" opskrift "); register_post_type ('my_culinary_recipe, $args)}, hvis du går til det administrative område, bør der være en ny mulighed i menuen" mad ".ikke at tilføje nogen opskrifter endnu, fordi vi er nødt til at tilføje nogle skik meta - kasser.,, trin 2, at skik meta - kasser, det her, fordi vi har brug for en hel del skik meta - kasser af forskellige typer opbevarer alle opskrift specifikke data, jeg skal bruge den frie skik meta - kasser og områder for wordpress bibliotek for at skabe dem.jo, du kunne bruge en anden skrift eller skabe meta - kasser fra bunden, hvis du foretrækker det.,, wptuts + har en stor forelæsning om emnet genanvendelige skik meta - kasser, vi har brug for at downloade biblioteket fra github.som ordføreren foreslår, vil vi opbevarer alle manuskriptet filer, l /metabox, mappe.så start med at skabe ", lib, folder i dit tema eller barn tema, så tilføjer", metabox, mappe inde, lib. ".pakke ud og uploade alle downloadede filer, /wp indhold /themes /mit emne /l /metabox,., endelig er vi nødt til også at omfatte den fil, lokalitet. folkesundhedsprogrammet.normalt ville du optage det i din, functions.php, sag, men vi vil gøre det i vores opskrift ud. folkesundhedsprogrammet,, fordi det er, hvor vi opbevarer alle opskriften specifikke funktioner., funktion be_initialize_cmb_meta_boxes() (hvis (!class_exists ('cmb_meta_box')) (require_once (lib /metabox /lokalitet. folkesundhedsprogrammet)}} add_action ("lokalitet, be_initialize_cmb_meta_boxes, 9999), når det er gjort, kan vi begynde at definere meta - kasser. definere meta - kasser for at kvalificere sig til google rige stumper, vi ikke for at give alle egenskaber opført i varespecifikationen, selv om hver content type har en krævede minimum.i denne forelæsning, vi kommer til at omfatte følgende egenskaber:,,,,,,,,,,, recipecategory, image, beskrivelse,,, ingredienser,,,,, recipeyield instrukser,,,,,,,,, cooktime preptime,,,,,,, totaltime,,, datepublished,,, forfatter,,, bemærk, at vi ikke skal skabe skik meta - kasser for alle egenskaber.for eksempel, totaltime, vil blive beregnet på grundlag af, preptime, og cooktime,. lad os tilføje nogle skik meta - kasser, skal vi?$præfiks = mcr_; //præfiks for alle områder fungere mcr_create_metaboxes ($meta_boxes) (samlet $præfiks. $meta_boxes [] = system ('id = > "opskrift data,'title = > »culinary opskrift,'pages = > system ('my_culinary_recipe"),'context = > "normale",'priority = > "høje",'show_names = > sandt,'fields = > system (//titel - tekst system ('name = > __ ("opskrift titel", "culinary_recipes"),'id » = > $præfiks. "navn,'type = > tekst ") //opskrift - - tekst system ('name = > __ (" opskrift - "," culinary_recipes "),'desc = > __ (" den form for ret: for eksempel forret, forret, dessert, osv. "," culinary_recipes "),'id = > $præfiks."type,'type = > text_medium ") //image uploade system ('name = >" opskrift image,'desc = > 'billede af den ret, der er under udarbejdelse. "'id = > $præfiks."billede,'type = > fil ",'save_id = > falske, //- id med sand'allow = > system ('url", "tillæg) //grænse for bare beslag system (»tillæg)) //resumé - tekst system ('name = > __ (resumé, culinary_recipes"),'desc = > __ ("et kort sammendrag, der beskriver ret.", "culinary_recipes"),'id = > $præfiks. "sammenfattende,'type = > tekst ") //ingredienser - textarea system ('name = > __ (ingredienser, culinary_recipes"),'desc = > __ ("hver ingrediens i seaprate.", "culinary_recipes"),'id "= > $præfiks."ingredienser,'type = > textarea ") //vej - textarea system ('name = > __ (" vejledning "," culinary_recipes "),'desc = > __ (" hver undervisning i seaprate. "," culinary_recipes "),'id" = > $præfiks. "instrukser,'type = > textarea ") //udbytte - tekst system ('name = > __ (" udbytte "," culinary_recipes "),'desc = > __ (angiv antallet af portioner eller antal mennesker var", "culinary_recipes'),'id = > $præfiks."udbytte,'type = > text_medium ") //forberedelse - afsnit system ('name = > __ (forberedelse, culinary_recipes"),'desc = > __ ("hvor lang tid tager det at gøre?"culinary_recipes"),'type = > afsnit ",'id = > $præfiks."prep_title) //- arbejdstid - system ('name = > __ ("arbejdstid", "culinary_recipes"),'id = > $præfiks. "prep_time_hours,'type = > "nummer",'std = > »0«) //forberedelse minutter - system ('name = > __ ("protokollen", "culinary_recipes"),'id = > $præfiks. "prep_time_minutes,'type = > "nummer",'std = > »0«) //kok - afsnit system ('name = > __ ("mad", "culinary_recipes"),'desc = > __ (') og af mad, bagerier osv. "," culinary_recipes "),'type = > afsnit",'id = > $præfiks. "coking_title) //kogetiden - tekst system ('name = > __ ("arbejdstid", "culinary_recipes"),'id = > $præfiks. "cook_time_hours,'type = > "nummer",'std = > »0«) //kogetiden - tekst system ('name = > __ ("protokollen", "culinary_recipes"),'id = > $præfiks. "cook_time_minutes,'type = > "nummer",'std = > »0«)); tilbage $meta_boxes;} add_filter ('cmb_meta_boxes "," mcr_create_metaboxes); med dette stykke kode, vi har skabt en meta - box "kulinariske opskrift", som vil vise kun på de opskrifter efter type edit skærm, er den faktiske område definitioner er opbevaret som et system i de områder,' ejendom.lad os tage et nærmere kig:, system ('name = > __ ('summary "," culinary_recipes "),'desc = > __ (»en kort resumé, der beskriver ret.", "culinary_recipes"),'id = > $præfiks.'summary,'type = > 'tekst "), at tilføje et nyt felt er så let som at kopiere en af de mange elementer (se ovenfor), og ændrede værdier for" navn, "" id ",", desc, "og" type ".- metaboxes og områder bibliotek giver en række forud definerede område typer, og en praktisk metode til at fastlægge deres egne., for at lette særskilt input i timer og minutter for mad og forberedelse, jeg defineret vores eget område - kaldet "nummer".jeg har brugt en af html5 nye input typer – nummer, og skabte en simpel validering funktion, støbning, hele type på den værdi, der leveres af brugeren. add_action ('cmb_render_number "," rrh_cmb_render_number, 10, 2); funktion rrh_cmb_render_number ($område, $meta -) (echo' < input type = "nummer" min = "0" max = "60" klasse = "cmb_text_inline" navn = "$område ['id" "id =" $område ['id "," værdi = ","!= = $12?$meta: $område ['std "'" /> "," < p - klassen = "cmb_metabox_description" >, $område ['desc "," < /p > «) add_filter (' cmb_validate_number "," rrh_cmb_validate_number); funktion rrh_cmb_validate_number ($nye) (afkast (int) $nye;}, trin 3 viser den opskrift, nu er vi endelig klar til at skrive lidt oveni.vi kan skabe en særskilt formular fil for vores sædvane efter art og sted af avancen direkte i denne model.i stedet vil vi lægge alle tillægget inde i en funktion, og tilføjer det til post - indhold, the_content(), filter.dette er vigtigt, fordi der er mange plugins at tilføje en slags indhold, f.eks. sociale medier knapper, til udgangen af den efterfølgende.på denne måde at sikre, at alle stik af produktionen, er anført nedenfor opskriften., funktion mcr_display_recipe ($indhold) (samlet $post; $opskrift = "; hvis (is_singular ('my_culinary_recipe')) ($opskrift. = < div klasse = opskrift > «. $opskrift. = < div itemscope itemtype =" http://schema.org/recipe ">" $opskrift. = < h2 itemprop = "navn" > ".get_post_meta ($post - > id,'mcr_name, sand). < /h2 > "$opskrift. = < img klasse =" alignright "itemprop =" image "src =".get_post_meta ($post - > id,'mcr_image, sand). '"/>" $opskrift. = < over klasse = "mcr_meta" > < b > opskrift type: < /b > < tid itemprop = "recipecategory" > ".get_post_meta ($post - > id,'mcr_type, sand). < /tid > < /span > "$opskrift. = < over klasse =" mcr_meta "> < b > udbytte: < /b > < over itemprop =" recipeyield ">".get_post_meta ($post - > id,'mcr_yield, sand). < /span > < /span > "$opskrift. = < over klasse =" mcr_meta "> < b > forberedelse: <. /b > < tid indhold =".mcr_time ('prep, iso). "itemprop =" preptime ">".mcr_time ('prep). < /tid > < /span > "$opskrift. = < over klasse =" mcr_meta "> < b > mad tid: < /b > < tid indhold =".mcr_time ('cook, iso). "itemprop =" cooktime ">".mcr_time ('cook). < /tid > < /span > "$opskrift. = < over klasse =" mcr_meta "> < b > den samlede tid: < /b > < tid indhold =".mcr_total_time (iso). "itemprop =" totaltime ">".mcr_total_time(). < /tid > < /span > "$opskrift. = < /br >" $opskrift. = < den højtstående repræsentant /> "$opskrift. = < over itemprop =" beskrivelse ">".get_post_meta ($post - > id,'mcr_summary, sand). < /span > < br /> $opskrift. = < h3 > ingredienser: < /h3 > ".mcr_list_items ('ingredients) $opskrift. = < h3 > retninger: < /h3 > ".mcr_list_items ('instructions) $opskrift. = < over klasse = "mcr_meta" > offentliggjort på < tid itemprop = "datepublished" indhold = ".get_the_date ('y-m-d). "" > ".get_the_date ('f j y '). < /tid > < /span > "$opskrift. = < over klasse =" mcr_meta "> på < over itemprop =" forfatter ">".get_the_author(). < /span > < /span > "$opskrift. = < /div >" $opskrift. = < /div > "} tilbage $indhold.$opskrift.} add_filter ('the_content "," mcr_display_recipe ', 1), lad os komme i kode.vi trækker den globale, $post, genstand, som giver os adgang til forskellige nyttige oplysninger om den post, der udvises, så bruger vi den betingede øremærke, is_singular(), for at kontrollere, om en enkelt post af den type, my_culinary_recipe, er i øjeblikket ved at blive udvist.det er, fordi vi ikke oprette en særskilt model for vores sædvane efter type og dermed wordpress bruger de mere generelle, single.php, model (eller index.php, hvis der ikke er enkelt. php,) til at vise den opskrift.ved hjælp af den, hvis vi sørger for, at opskriften erklæring avancen ikke vises på faste stillinger. endelig har vi fat i opskriften data ved hjælp af, get_post_meta(), funktion, og det inde i tillægget struktureret i henhold til mikrodata format., hjælper funktioner, kan man mærke, at jeg brugte nogle yderligere funktioner –, mcr_time(),, mcr__total_time(), og mcr_list_items(), for at hente og forberede de data til fremvisning.lad os tage et kig.tid i forbindelse med egenskaber (, preptime,, cooktime, og totaltime) forventer værdier i iso 8601 varighed format.To account for that, both of our time related functions will take a format as a parameter, and prepare output accordingly., function mcr_time($type = 'prep', $format = null) { \tglobal $post; \t$hours = get_post_meta($post->ID,'mcr_'.$type.'_time_hours',true); \t$minutes = get_post_meta($post->ID,'mcr_'.$type.'_time_minutes',true); \t$time = ''; \tif ($format == 'iso') { \t\tif ($hours > 0) { \t\t\t$time = 'PT'.$hours.'H'; \t\t\tif($minutes > 0) { \t\t\t\t$time .= $minutes.'M'; \t\t\t} \t\t} \t\telse { \t\t\t$time = 'PT'.$minutes.'M'; \t\t} \t} \telse { \t\tif ($hours > 0) { \t\t\tif ($hours == 1) { \t\t\t\t$time = $hours.' hour '; \t\t\t} \t\t\telse { \t\t\t\t$time = $hours.' hrs '; \t\t\t} \t\t\tif ($minutes > 0) { \t\t\t\t$time .= $minutes.' mins';}} andre {$tid = $minutter. "min"}} tilbage $;}, mcr_time(), funktion forbereder produktion til mad og forberede gange, det accepterer to parametre:, - type (obligatorisk), er den type, vi vil se.accepterer to værdier –, forberede, "(forvalgt værdi) eller" kok ", $format (fakultativ), – viser, at produktionen skal være formateret efter iso 8601 varighed format.Accepts only one value – ',iso,'., , function mcr_total_time($format = null) { \tglobal $post; \t$prep_hours = get_post_meta($post->ID,'mcr_prep_time_hours',true); \t$prep_minutes = get_post_meta($post->ID,'mcr_prep_time_minutes',true); \t$cook_hours = get_post_meta($post->ID,'mcr_cook_time_hours',true); \t$cook_minutes = get_post_meta($post->ID,'mcr_cook_time_minutes',true); \t$total_minutes = ($prep_hours + $cook_hours)*60 + $prep_minutes + $cook_minutes; \t$hours = 0; \t$minutes = 0; \tif ($total_minutes >= 60) { \t\t$hours = floor($total_minutes /60); \t\t$minutes = $total_minutes - ($hours * 60); \t} \telse { \t\t$minutes = $total_minutes; \t} \t$total_time = ''; \tif ($format == 'iso') { \t\tif ($hours > 0 ) { $total_time = pt. $timer. 2); hvis ($minutter > 0) ($total_time. = $minutter. er ') andet ($total_time = pt. $minutter. er') andet (hvis ($timer > 0) (hvis ($timer = = 1) ($total_time = $timer. "time"} andre ($total_time = $timer. "hrs"} hvis ($minutter > 0) ($total_time. = $minutter. "min"}} andre ($total_time = $minutter. "min"}} tilbage $total_time;}, mcr_total_time(), funktion, beregner og forbereder produktion til opskrift samlede tid.kun accepterer en parameter – $format, som svarer til den, $format, parameter i, mcr_time(), funktion. den sidste hjælper funktion viser lister over produkter, – ingredienser eller vejledning i henhold til $type parameter, funktion mcr_list_items ($type = 'bestanddele') (samlet $post. hvis (get_post_meta ($post - > id, mcr_ ".$type, sande)) ($get_items = get_post_meta ($post - > id, mcr_ ".$type, sande); $poster = eksplodere ("\\ r" $get_items); $liste = ";} andre {tilbage;} hvis ($type ='ingredients) {$liste. = < ul > '; for hvert ($poster som $punkt) {$liste. = < li > < over itemprop =" ingredienser ">".trim ($punkt).< /span > < /li > "} $liste. = < /ul > «) elseif ($type ='instructions) {$liste. = < eft itemprop =" recipeinstructions "> «. for hvert ($poster som $punkt på dagsordenen) ($liste. = < li >".trim ($punkt).< /li > "} $liste. = < /ol > «) andet ($liste. = ugyldige liste type. '} tilbage $liste;}, nu er det tid til at tilføje nogle indhold.sejle til opskrifter afsnit i administrationen, og tilføje en opskrift.produktionen kunne bruge lidt stil, men hvis du ser den stilling, du skulle se den opskrift under regelmæssig indhold. det er det!det eneste, der er tilbage, er at kontrollere, om de er avancen korrekt med de rige snippet afprøvning værktøj fra google. det er de rige snippet forpremiere hidrørende fra vores html -:,, du kan teste din fortjeneste ved at levere en url eller en kode snippet til afprøvning værktøj.,, når du har tilføjet rige stumper af avancen, vent på google larve til at opdage det.da google meddelelser, den nye oveni, at det skal begynde med rige stumper for din hjemmeside - resultater.du kan også indgive en formular til anmodning om, at fortælle google om rige stumper på din hjemmeside, men du må give det lidt tid.,, konklusion i denne lektion, jeg viste dig, hvordan vi kan integrere en mikrodata format med en schema.org ordforråd til at vise disse opskrifter.det bør tjene som en model, som du kan bruge til at give rige stumper af andre indhold typer.har du brugt google rige stumper for noget i deres projekter?lad os vide, i bemærkningerne nedenfor.








Previous:
Next Page: