Reklame
Mange bloggere søger højt og lavt efter den perfekte WordPress-widget, der gør nøjagtigt hvad de vil have, men med en lille programmeringsoplevelse kan du måske have det lettere at skrive din brugerdefinerede widget.
Denne uge vil jeg gerne vise, hvordan man gør nøjagtigt det, og den widget, vi skriver, er en simpel en, der udvælger et enkelt tilfældigt indlæg fra din site, trækker det fremhævede billede og viser det på sidebjælken - en visuel "check dette ud" widget, der hjælper brugere med at finde mere indhold på din websted.
Dette er også en udvidelse af en fortsættende serie, hvor jeg viser dig, hvor let det er at gøre tilpas din WordPress-skabelon 2 nye cool Wordpress-plugins og forståelse af Wordpress-temastrukturenDenne uge skal jeg kigge på et overlegent alternativ til den ofte roste alt-i-en SEO; et plugin, der giver dig kraften i et Wordpress-udgivelsessystem, men giver dig mulighed for at output ... Læs mere .
Du kan også være glad for at vide, at vi har tilføjet en ny WordPress Tutorials-kategori
til MakeUseOf, så sørg for at tjekke det for et stadigt voksende arkiv med opdaterede tip og guider til verdens foretrukne blogplatform.Nøglekoncepter: WordPress-forespørgsler og sløjfen
Hver side på din blog består af en forespørgsel til din database med indlæg. Afhængigt af den side, du ser, ændres forespørgslen. Din bloghjemmeside kan f.eks. Bruge forespørgslen "få de seneste 10 blogindlæg“. Når du ser kategoriarkiverne, ændres forespørgslen muligvis til "få kun de seneste 20 indlæg til kategorien familiebilleder, bestil resultaterne efter den offentliggjorte dato“. Hver forespørgsel returnerer et sæt resultater, og afhængigt af den sideskabelon, der bruges, køres hvert resultat gennem skabelonens hovedløkke.
Hver side kan imidlertid bestå af mere end en forespørgsel, og du kan endda oprette dine egne forespørgsler for at tilføje funktionalitet til forskellige steder i din skabelon. Du kan se et eksempel på dette i brug i bunden af denne artikel - vi har et par ekstra forespørgsler, der kører på hver side, der har til formål at vise dig relaterede artikler, du muligvis er interesseret i, eller artikler, der er trend her uge.
For at lave vores brugerdefinerede widget skal vi imidlertid blot oprette en yderligere forespørgsel, der griber X antal tilfældige indlæg plus deres billeder og viser dem på en eller anden måde på sidebjælken. Jeg har allerede vist dig i sidste uge koden til Grib det fremhævede billede Konfigurer din blog med WordPress: Den ultimative guideVil du starte din egen blog, men ved ikke hvordan? Se til WordPress, den mest kraftfulde blogplatform, der er tilgængelig i dag. Læs mere , så vi har bare brug for at vide, hvordan man opretter en ny WordPress-widget og placerer den på sidebjælken.
Grundlæggende widget-kode
Start med at oprette en ny .php-fil i din wp-content / plugins vejviser. Du kan også følge vejledningen offline og uploade den ved hjælp af WordPress-interface, men jeg synes, det er lettere at skrive, mens vi går sammen, i tilfælde af at du har brug for fejlfinding. Ring til din fil, hvad du vil, men jeg skal med random-post-widget.php
Indsæt følgende i filen, og gem. Du er velkommen til at ændre sektionen øverst med mit navn i det, men juster ikke resten af koden endnu. Dette er dybest set en skelet-tom widget, og du kan se, hvor den siger // WIDGET-KODE GÅR HER hvor vi tilføjer vores funktionalitet senere.
php. /* Plugin Navn: Tilfældig post widget. Plugin URI: http://jamesbruce.me/ Beskrivelse: Tilfældig post-widget griber et tilfældigt indlæg og den tilhørende miniaturebillede, der skal vises på din sidebjælke. Forfatter: James Bruce. Version: 1. Forfatter URI: http://jamesbruce.me/ * / klasse RandomPostWidget udvider WP_Widget. {funktion RandomPostWidget () {$ widget_ops = array ('classname' => 'RandomPostWidget', 'description' => 'Viser et tilfældigt indlæg med miniature'); $ this-> WP_Widget ('RandomPostWidget', 'Tilfældig post og miniature', $ widget_ops); } funktionsform ($ instans) {$ instans = wp_parse_args ((array) $ instans, array ('title' => '')); $ title = $ instans ['title'];php} funktionsopdatering ($ new_instance, $ old_instance) {$ instans = $ old_instance; $ instans ['title'] = $ new_instance ['title']; returnere $ instans; } funktionswidget ($ args, $ instans) {ekstrakt ($ args, EXTR_SKIP); ekko $ før_widget; $ title = tom ($ instans ['title'])? '': Apply_filters ('widget_title', $ instans ['title']); hvis (! tom ($ titel)) gentager $ før_titlen. $ Titel. $ After_title;; // WIDGET-KODE GÅR HER ekko " Dette er min nye widget!
"; ekko $ after_widget; } } add_action ('widgets_init', create_function ('', 'return register_widget (' RandomPostWidget ');'));
Som det er, gør plugin ikke meget bortset fra at udskrive en stor titel med ordene "Dette er min nye widget!“.

Det giver dig dog muligheden for at ændre titlen, som er slags vigtig for enhver widget. Tilføjelse af andre indstillinger er lidt uden for denne artikels rækkevidde i dag, så lad os nu gå videre for at give den et reelt formål.

En ny forespørgsel og løkken
For at oprette en ny forespørgsel til din blogdatabase skal du bruge query_posts () funktion sammen med et par parametre, kør derefter gennem output ved hjælp af en stund-loop. Lad os prøve dette - en meget grundlæggende forespørgsel og loop til at demonstrere. Udskift koden, der siger:
med følgende:
// WIDGET-KODE GÅR HER. query_posts ( ''); if (have_posts ()): while (have_posts ()): the_post (); titlen(); EndWhile; Afslut Hvis; wp_reset_query ();
Dette er en absolut grundlæggende forespørgsel ved hjælp af standardindstillinger og nulformatering af output. Afhængig af hvordan din blog er konfigureret, vil standard sandsynligvis være at få fat i de 10 seneste indlæg - så gør alt ovenstående kode at udskrive titlen på hvert indlæg. Det er ret grimt, men det fungerer:

Vi kan gøre det lidt bedre med det samme bare ved at tilføje noget HTML-formatering til output med EKKO kommando, og oprette et link til indlægget vha get_the_permalink () fungere:
query_posts ( ''); if (have_posts ()): echo "
- “; while (have_posts ()): the_post (); ekko "
- ”.Get_the_title ().”
“; EndWhile; ekko "
“; Afslut Hvis; wp_reset_query ();

Allerede ser det meget bedre ud. Men vi vil kun have et indlæg, valgt tilfældigt. For at gøre dette specificerer vi nogle parametre i forespørgslen:
query_posts ( 'posts_per_page = 1 & orderby = rand');
Selvfølgelig kan du ændre det til ethvert antal stillinger - der er faktisk en hele række ekstra bits, du kan videregive til forespørgslen for at begrænse, udvide eller ændre rækkefølgen af resultaterne, men lad os holde os med det indtil videre. Hvis du opdaterer, skal du se bare et indlæg, der er tilfældigt, hver gang du opdaterer.
Nu til den viste miniature. Udskift koden med denne, forhåbentlig kan du se, hvor vi griber miniaturen og viser den:
query_posts ( 'posts_per_page = 1 & orderby = rand'); if (have_posts ()): echo "
- “; while (have_posts ()): the_post (); ekko "
- ”.Get_the_title (); ekko the_post_tattnail (array (220.200)); ekko "
“; EndWhile; ekko "
“; Afslut Hvis; wp_reset_query ();
Du kan se de færdige resultater igen på min udviklingsblog Selvforsyningsvejledning, skønt jeg måske har flyttet tingene, da du læste dette.

Konklusion:
Se, hvor let det er at lave din egen tilpassede widget, der kan gøre nøjagtigt, hvad du vil? Selv hvis du ikke forstår 90% af den kode, jeg har vist dig i dag, skal du stadig være i stand til at tilpasse den noget ved blot at ændre variabler eller angive forskellige HTML. Vi skrev en hel widget i dag, men du kan nemt bruge bare den nye forespørgsel og loop-kode på en hvilken som helst af dine sideskabeloner.
James har en BSc i kunstig intelligens og er CompTIA A + og Network + certificeret. Han er hovedudvikler af MakeUseOf og bruger sin fritid på at spille VR paintball og brætspil. Han har bygget pc'er siden han var barn.