tilføje jquery autocomplete til deres lokaliteter efter

, tilføje jquery autocomplete til dit sted, jeg,,,,, 10,,,,,,,,,,,, 61,,,,,,,, det cyber - mandag envato tuts + kurser vil blive reduceret til $3.- og' t miss.,, funktion, get_search_form(), kan (og skal!)anvendes til at vise de lede form for din hjemmeside.det er et job, men det er meget kedelig.leveres med wordpress siden 3.3 er imidlertid et redskab, der kan gøre det lettere.i denne forelæsning vil jeg viser, hvordan man tilføje jquery autocomplete til din søgen form.,,, åben din søgen form, det pædagogiske forudsætter, at temaet anvendelser, get_search_form(), til at vise din søgen form og opfordrer wp_footer(),., lad os tage et kig på den twentyeleven søgning form (, searchform.php, i din tema).chancerne for, at dit er meget ens.hvis du ikke kan finde, searchform.php, i dit emne, så er det nok med misligholdelse avance, som næsten er identiske.hvis din søgning form er svært krypterede jeg vil anbefale, at det i searchform. php, og ved, get_search_form(); at vise det. < form metode = "" id = "searchform" action = "<?php echo esc_url (home_url (» /«)?> "> < etiket til =" s "> <?folkesundhedsprogrammet aspektet _e ("leder", "twentyeleven)?> < /etiketten > < input type = "tekst" navn = "s" id = "s" indikation af en art = "<?folkesundhedsprogrammet aspektet esc_attr_e ("leder", "twentyeleven)?> "/> < input type =" stille "navn =" stille "id =" searchsubmit "værdi =" <?folkesundhedsprogrammet aspektet esc_attr_e ("leder", "twentyeleven)?> "/> < /form > hvad vi leder efter, er de id - attribut for søgningen input, så vi kan bekæmpe det med jquery.i dette tilfælde er det, s. før vi begynder, lad os lave lidt arbejde.dette vil også tjene som et resumé af, hvad vi skal gøre.,, trin 1 arbejde, alle følgende bør gå ind i dit tema er, funktioner. folkesundhedsprogrammet.vi kommer til at klipse på, lokalitet, krog med en funktion, der vil:,, registrere nogle css og javascript, –, vi får brug for nogle af de jquery - stil.jeg skal bare bruge det grundlæggende design, men du kan altid køre dit eget tema i overensstemmelse med deres hjemmeside.du kan sige det til din tema er, style.css eller holde det i en separat fil og registrere den som vist her.vi har brug for en sædvane javascript, som jeg vil kalde, myacsearch.js, og opbevarer det i mit emne er js, mappe.,, få vores javascript og – css, ønsker vi at tilføje vores design og javascript ved (og kun når) søge form vises.det, get_search_form, filter, brande, når det sker, og vi vil bruge det til at enqueue vores manuskripter og stilarter, der – aktioner, vi er nødt til at tilføje en callback - funktion til at behandle anmodningen og vende tilbage med resultaterne, når wordpress modtager vores indsats via ajax.for at gøre det, vi skal bruge kroge, wp_ajax_ {foranstaltninger), og wp_ajax_nopriv_ (aktion), hvor {foranstaltning), anvendes som indikator for den aktion, som vi ønsker at foretage, og så bør være enestående).jeg skal sætte det til myprefix_autocompletesearch,.,, add_action ("lokalitet, myprefix_autocomplete_init); funktion myprefix_autocomplete_init() (//register vores jquery - stil og vores skik javascript fil wp_register_style ('myprefix-jquery-ui,'http: //ajax. googleapis. kom /ajax /libs /jqueryui /8 /themes /base /- jquery. css); wp_register_script ('my_acsearch, get_template_directory_uri()."/er /myacsearch. js, system ('jquery,'jquery-ui-autocomplete '), er sandt); //funktion til at skyde når søgning form vises add_action (' get_search_form "," myprefix_autocomplete_search_form); //funktioner til at beskæftige sig med ajax anmodning - til fældet i brugere, den anden for ikke - registrerede for brugerne.add_action ('wp_ajax_myprefix_autocompletesearch "," myprefix_autocomplete_suggestions'); add_action (' wp_ajax_nopriv_myprefix_autocompletesearch "," myprefix_autocomplete_suggestions)}, trin 2 ajax url, vi vil bruge ajax at sende eftersøgningen form er input og returnerer de tilsvarende stillinger, som brugeren typer.så vi bliver nødt til at give autocomplete url til at sende en anmodning til.wordpress har en specifik url, der beskæftiger sig med ajax anmodninger, og det er givet, admin_url (admin ajax. folkesundhedsprogrammet ").det giver os adressen på serveren side –, men vi ønsker det i vores javascript fil.dette kan gøres ved, wp_localize_script,.denne funktion er beregnet til at hjælpe med at lokalisere, men vi kan genbruge det til vores brug.læg det umiddelbart efter registrering af den skik javascript, my_acsearch i trin 1:, wp_localize_script ('my_acsearch "," myacsearch, system ('url = > admin_url (admin ajax. php')); den fastsætter et objekt, myacsearch, som har en fast ejendom, url. ".en sådan metode gør det muligt at sende indstillinger lagres i databasen for javascript fil, men til vores formål, vi har kun brug for, myacsearch.url, som er adressen til direkte vores ajax anmodning.,, trin 3 javascript, jquery er autocomplete kommer med en del af funktioner, pakket ind i det, men vi bliver til det basale.kan du se alle elementer vedrørende demo side.de data, vi sender til ajax url vil omfatte en aktion variabel, hvis værdi er de foranstaltninger, vi identifikator i trin 1.i dette tilfælde er det, myprefix_autocompletesearch,.så, nu i vores javascript fil, tilføje følgende., var acs_action = myprefix_autocompletesearch «, det giver os mulighed for at identificere den anmodning, udføre eftersøgnings - og vende tilbage med resultaterne.det næste vi anvender autocomplete funktion til søgningen form (her bruger vi id - attribut i form input): $("# s"). autocomplete ({kilde: funktion (req respons) {%. getjson (myacsearch. url + "?callback =?& action = + acs_action, req respons)}, vælge: funktion (omstændigheder ui) {vindue. beliggenhed. href = ui.item.link;}, minlength: 3}), kilde funktion bør vende tilbage til en række ting.hver genstand skal have fast ejendom, etiket, "(at udstille i forslaget liste), og vi vil tilføje den ejendom, link, url af post.den særlige funktion er fyret, når en bruger klik et af forslagene.i dette eksempel, at forslaget tager dig til side.det, minlength, angiver antallet af tegn, skal brugeren, før de autocomplete sparker. vi klarer det hele i et, klar, chef, så det er kun op, når den side er fuldt lastet.den fuldstændige javascript:, jquery (dokument). klar (funktion ($) (var - acs_action = myprefix_autocompletesearch. $("# s"). autocomplete ({kilde: funktion (req respons) {%. getjson (myacsearch. url + "?callback =?& action = + acs_action, req respons)}, vælge: funktion (omstændigheder ui) {vindue. beliggenhed. href = ui.item.link;}, minlength: 3})}), trin 4 enqueuing vores manuskripter og styles, når de søger form vises ved hjælp af, get_search_form();, funktion, vores opgave, myprefix_autocomplete_search_form, ild.i denne funktion, vi enqueue manuskriptet og livsformer, som vi har brug for til autocomplete.vi har ikke brug for at lade jquery eller autocomplete direkte, wordpress allerede ved, at vi har brug for den, og vi vil ordne det for os, funktion myprefix_autocomplete_search_form() {wp_enqueue_script ('my_acsearch'); wp_enqueue_style ('myprefix jquery ui)}, er der kun tilbage at håndtere ajax anmodning.,, løntrin 5 håndtering af ajax anmodning om, at vi, myprefix_autocomplete_init, funktion, kaldte vi noget som følgende:, add_action (' wp_ajax_ (aktion), my_hooked_function '); add_action (' wp_ajax_nopriv_ (aktion), my_hooked_function '); den første aktion er fyret, da wordpress modtager en anmodning med handling på ajax, {aktion), og brugeren er logget på.den anden er fyret, når brugeren ikke er logget på.dette kan især være nyttige, hvis man ønsker kun at behandle en anmodning, hvis brugeren ajax er logget på.til vores formål, vi vil have det til at fungere for både inde i og ikke - registreret hos brugerne, så mødes vi vores funktion på begge.her har vi definere den callback funktion, igen i går i deres funktioner. folkesundhedsprogrammet, er:, funktion myprefix_autocomplete_suggestions() (//spørgsmål til forslag $stillinger = get_posts (array (s = > $_request ['term "); //initialise forslag array $forslag = array(); globale $post. for hvert ($stillinger som $post): setup_postdata ($post); //initialise forslag array $forslag = array(). $forslag [»mærket«] = esc_html ($post - > post_title); $forslag ['link '] = get_permalink(); //add forslag til forslag array $forslag [] = $forslag; endforeach; //json koder og echo $svar = $_get [" callback "]."(".json_encode ($forslag). "); echo $svar; //glem ikke ud!udgang;}, lad os tage det lidt ad gangen.input - brugeren har skrevet sendes sammen med ajax anmodning og er givet ved, $_request ['term ".vi bruger simpelthen, get_posts, søge attribut til at ransage vores stillinger med det. vi går gennem hver af de returnerede stillinger, og for hver enkelt vi opbygge et forslag system.dette system indeholder posts titel (kalder vi det ", etiket, så autocomplete vil anerkende dette og bruge det til forslaget liste), og stillingen er permalink, således at trykke en post direkte brugeren til den side.vi tilføjer hver forslag system til et forslag array. næste, vi json indkodning af forslagene, og echo resultatet.endelig er det ud!og vi er færdige.lad os høre, hvad du synes i bemærkningerne, og hvis du har nogen forslag til, hvordan til at udvide det, vi ville elske, at du deler dem også.



Previous:
Next Page: