, der giver brugerne mulighed for at forelægge deres wordpress websted: en citater, stik af,,,,, 1,,,,,,,,, 12,,,,,,, det cyber - mandag envato tuts + kurser vil blive reduceret til $3.- og' t miss.,, i denne forelæsning, vil du lære at skabe et stik af, der gør det muligt for brugere til at fremsætte form af data.du skal også lære om sikkerhed ved hjælp af nonces.,,,,, hvad vil du lære, hvordan til at vise og proces, en form ved hjælp af en shortcode, anvendelse nonces at sikre brugernes bemærkninger, er det meget enklere, end du tror, shortcodes ofte anvendes til visning af simple data, men fordi det faktisk er en måde at filial ud fra en side eller post - og henrette kode, de kan anvendes til ganske komplicerede opgaver, som f.eks. visning og forarbejdning former. vil vi opbygge et stik af, som vil gøre det muligt for logget på brugere:, fremlægge citater til mådehold og offentliggørelse, ser deres ikke - offentliggjorte noteringer, slette deres ikke - offentliggjorte noteringer, her er, hvad vi sigter på:,, koden er til rådighed i stik af kilde på toppen af denne forelæsning.,, trin 1 oprette stik af, wordpress stik af mappe er located i din wordpress anlæg mappe, wp /plugins indhold.skabe en mappe inde i plugins mappe.lad os kalde det, fremsætte bruger citater.nu, skabe stik af sagen selv.lad os kalde det, submit_user_quotes. folkesundhedsprogrammet.vejen til din stik af fil burde nu være:, wp indhold /plugins /forelægge bruger citater /submit_user_quotes. php, hver wordpress stik af skal header oplysninger, således wordpress kan identificere den og gøre den tilgængelig på dit instrumentbræt stik af s. <?php /* stik af navn: forelægge bruger citater stik af uri: http://wp.rosselliot.co.nz/user-quotes/beskrivelse: giver registrerede brugere til at afgive tilbud.version 1.0 kørekort: gplv2 forfatter: ross elliot forfatter uri: http://wp.rosselliot.co.nz * /kan du klippe det info ifølge deres egne krav. vil du se stik af, der er opført som denne:,, trin 2, stik af initialization funktion, vil vi skabe en sædvane efter type, der hedder citater til at holde vores citater og sædvane taksonomi, der hedder quote_category.dette vil gøre det muligt for renere administration af citaterne end blot at tildele dem til normale stillinger og kategorier, lokalitet krog og funktion, vil vi anvende følgende initialization kode til at skabe vores skik og sædvane efter type taksonomi:, add_action ('init "," suq_plugin_init); funktion suq_plugin_init() ($quote_type_labels = system ("navn" = > _x ('quotes "," post - almindelige navn "), singular_name = > _x ('quote", "post - enestående navn"), add_new = > _x ('add nye citat, citat "), add_new_item = > __ ('add nye citerer"), edit_item = > __ ('edit citerer "), new_item = > __ ('add nye citerer"), all_items = > __ ('view citater "), view_item = > __ ('view citerer"), "search_items' => __('Search Quotes'), 'not_found' => __('No Quotes found'), 'not_found_in_trash' => __('No Quotes found in Trash'), 'parent_item_colon' => '', 'menu_name' => 'Quotes' ); $quote_type_args = array( 'labels' => $quote_type_labels, 'public' => true, 'query_var' => true, 'rewrite' => true, 'capability_type' => 'post', 'has_archive' => true, 'hierarchical' => false, 'menu_position' => null, 'supports' => array('title', 'editor', 'author') ); register_post_type('quotes', $quote_type_args); $quote_category_labels = array( 'name' => _x( 'Quote Categories', 'taxonomy general name' ), 'singular_name' => _x( 'Quote', 'taxonomy singular name' ), 'search_items' => __( 'Search Quote Categories' ), 'all_items' => __( 'All Quote Categories' ), 'parent_item' => __( 'Parent Quote Category' ), 'parent_item_colon' => __( 'Parent Quote Category:' ), 'edit_item' => __( 'Edit Quote Category' ), 'update_item' => __( 'Update Quote Category' ), 'add_new_item' => __( 'Add New Quote Category' ), 'new_item_name' => __( 'New Quote Name' ), 'menu_name' => __( 'Quote Categories' ), ); \t $quote_category_args = array( 'hierarchical' => true, 'labels' => $quote_category_labels, 'show_ui' => true, 'query_var' => true, 'rewrite' => array("kugle" = > "quote_category)); register_taxonomy ('quote_category, system ('quotes), $quote_category_args); $default_quote_cats = system ('humor", "politik", "sport", "filosofi"); for hvert ($default_quote_cats som $kat) (hvis (!term_exists ($kat, quote_category ') wp_insert_term ($kat, quote_category)}}, hvad denne kodeks, er:,, anvender wordpress lokalitet aktion krog til at kalde en stik af initialization funktion, registrerer en sædvane efter type, der hedder citater, registrerer en skik taksonomi, der hedder quote_category og overdrager det til citater post type, tilføjer en misligholdelse kategorier til quote_category taksonomi, hvis de ikke allerede findes, vil vi have en citater menu i vores administration af instrumentbrættet og en måde at forvalte citater og deres kategorier.,, trin 3 definerer en shortcode, næste, vi skal definere en shortcode, der vil gøre det muligt for os at vise (og proces) de bruger citater formular i en post - eller side:, add_shortcode ('suq_form "," suq_form_shortcode), her bruger vi wordpress add_shortcode funktion at definere en shortcode ved navn suq_form og en funktion, der hedder suq_form_shortcode, der vil blive kaldt, når wordpress møder den shortcode [suq_form] i en stilling eller en side, før vi ser på form - og forarbejdning af funktioner, lad os snakke om...,, sikkerhed, fordi vores stik af accepterer oplysninger fra brugerne vi gennemfører følgende sikkerhedsmekanismer:, kun er logget på brugere har adgang til post - formular, vi bruger nonces for at kontrollere, at de former, er forårsaget af vores stik af, citater indgives ved hjælp af wp_insert_post, som sanitizes data før gemmer det til databasen, brugere kan kun se deres egne citater, og nonces forhindre dem fra sletning af andre brugere er citater, nonces, en voldtægtsforbryderder er en række anvendt én gang.vi bruger dem til at kontrollere, at de oplysninger, som kommer tilbage til os, er faktisk fra de former, som vi har skabt. vi skaber en pædofil område ved hjælp af wp_nonce_field, som vil indgå i vores form som en skjult område:, wp_nonce_field ('suq_form_create_quote "," suq_form_create_quote_submitted), fordi det er en skjult inden for vores form det kommer tilbage til os, da den formular, der er indgivet.så kan vi se, at det lige nu er gyldig med wp_verify_nonce:, wp_verify_nonce ($_post ['suq_form_create_quote_submitted '], suq_form_create_quote')), som vil vende tilbage, hvis de lige nu kontrollerer,.,, løntrin 4 de vigtigste funktion, det er den funktion, med vores shortcode.det viser og processer, de citerer formular og citerer notering /sletning form.vi tager det bid mellemstore stykker og i trin 5 vil vi se frelseren funktioner., funktion suq_form_shortcode() (hvis (!is_user_logged_in()) (modydelse på < p > de skal være logget på efter et citat. < /p >} globale $current_user;,, skal de kontrollere, om brugeren er registreret, tag wordpress $current_user variable, som vi bliver nødt til at få vores bruger id, hvis (isset ($_post ['suq_form_create_quote_submitted ']) & & wp_verify_nonce ($_post ['suq_form_create_quote_submitted'], suq_form_create_quote ')) ($suq_quote_author = beklædning ($_post ['suq_quote_author']); $suq_quote_text = beklædning ($_post ['suq_quote_text ']); hvis ($suq_quote_author!= "& &. $suq_quote_text!= ") ($quote_data = system ('post_title = > $suq_quote_author,'post_content = > $suq_quote_text, post_status = >" indtil "," post_author = > $current_user - > id, post_type = > "citater"); hvis ($quote_id = wp_insert_post ($quote_data)) (wp_set_object_terms ($quote_id (int) $_post ['suq_quote_category '], quote_category) echo' < p > citerer skabt og afventer mådehold.< /p > «) andet (//) eller tekst felt er tomt echo '< p > citerer ikke reddet!hvem sagde det?og citerer må ikke være tom. < /p > «), hvis citatet oprettelse form er blevet forelagt, og der vil være en suq_form_create_quote_submitted område, som var affødt af vores wp_nonce_field funktion.så kan vi kontrollere lige nu og gå over til proces indgivet citerer, lave nogle basale validering ved at sørge for, at de citerer forfatter og citerer tekstfelter har noget til dem, hvis ikke, viser fejlmelding, opbygge et system om post - status (admin indtil nu er nødt til at godkende det til offentliggørelse), hvori efter type citater (vores skik efter type), og hvori forfatteren af den citerer de er logget på brugeren, hvis citatet med held blev indsat, sæt den kategori, de citerer og udvise en succes besked, hvis (isset ($_post ['suq_form_delete_submitted ']) & & wp_verify_nonce ($_post ['suq_form_delete_submitted'], suq_form_delete ')) (hvis (isset ($_post ['suq_delete_id'])) (hvis ($quotes_deleted = suq_delete_quotes ($_post ['suq_delete_id '])) (echo' < p > ".quotes_deleted dollars. "citerer (e) udgår.< /p >}}}, hvis citatet slette form er blevet forelagt, og der vil være en suq_form_delete_submitted område, som var affødt af vores wp_nonce_field funktion.så kan vi kontrollere pædofil og gå til at række citater kontrolleres for sletning, vi ser, at vi rent faktisk har nogle citater kontrolleres for sletning af prøvning $_post ['suq_delete_id "].hvis vi giver dem til suq_delete_quotes funktion (se trin 5), hvis priser blev slettet, vi udviser en succes besked, echo suq_get_create_quote_form ($suq_quote_author, $suq_quote_text, $suq_quote_category); hvis ($quotes_table = suq_get_user_quotes ($current_user - > id)) (echo $quotes_table;},, vi output citatet oprettelse form, vi endelig produktion de citerer notering /sletning form med vedtagelsen af brugeridentifikation til suq_get_user_quotes funktion (se trin 5), løntrin 5 hjælper funktioner, og her ser vi på de funktioner, som skaber de former og den funktion, der sletter de udvalgte citater., funktion suq_get_create_quote_form ($suq_quote_author = "$suq_quote_text =" $suq_quote_category = 0) ($. = < form id = "create_quote_form" metode = "post" action = ">" $. = wp_nonce_field ('suq_form_create_quote "," suq_form_create_quote_submitted) $. = < etiket til = "suq_quote_author" >, der sagde det?< /etiketten > < br /> $. = < input type = "tekst" id = "suq_quote_author" navn = "suq_quote_author" værdi = ".suq_quote_author dollars. "/> < br /> $. = < etiket til = "suq_quote_category" > kategori < /etiketten > < br /> $. = suq_get_quote_categories_dropdown ('quote_category, $suq_quote_category).< br /> $. = < etiket til = "suq_quote_text" > citerer < /etiketten > < br /> $. = < textarea id = "suq_quote_text" navn = "suq_quote_text" /> ".suq_quote_text dollars. "< /textarea > < br /> < br /> $. = < input type = "stille" id = "suq_submit" navn = "suq_submit" værdi = "forelægge citerer for offentliggørelse" > "$. = < /form > « tilbage $;}, funktion, accepterer 3 frivillig argumenter for genopretning form områder.det er en fordel for brugeren. en pædofil område er produktion, som vi ser, hvor formularen indgives, vi produktion en dropdown for citerer kategorier ved at suq_get_quote_categories_dropdown (se næste funktion), funktion suq_get_quote_categories_dropdown ($taksonomi, $udvalgte) {tilbage wp_dropdown_categories (array ('taxonomy = > $taksonomi "navn" = > suq_quote_category "," udvalgt "= > $udvalgte, hide_empty = > 0, echo" = > 0)}, funktion, accepterer 2 argumenter, herunder element id for øjeblikket udvalgte kategori, vi bruger wordpress wp_dropdown_categories funktion for at skabe en dropdown, som indeholder en liste over de citerer kategorier af quote_category taksonomi (vores skik taksonomi), funktion suq_get_user_quotes ($user_id) ($args = system (') = > $user_id, post_type = > "citater", "post_status = >" indtil "); $stillinger = nye wp_query ($args); hvis (!$posts->post_count) return 0; $out .= '<p>Your Unpublished Quotes</p>'; $out .= '<form method="post" action="">'; $out .= wp_nonce_field('suq_form_delete', 'suq_form_delete_submitted'); $out .= '<table id="quotes">'; $out .= '<thead><th>Said By</th><th>Quote</th><th>Category</th><th>Delete</th></thead>'; foreach($posts->posts as $post){ $quote_cats = get_the_terms($post->ID, 'quote_category'); foreach($quote_cats as $cat){ $quote_cat = $cat->name; } $out .= wp_nonce_field('suq_post_delete_' . - post - > id, suq_post_delete_id_ ".- post - > id, falske); $. = < tr > $. = < td > ".- post - > post_title. "< /td > "$. = < td >".- post - > post_content. "< /td > "$. = < td >".quote_cat dollars. "< /td > "$. = < td > < input type =" afkrydsningsfelt "navn =" suq_delete_id [] "værdi =".- post - > id. "/> < /td > "$. = < /tr >"} $. = < /tabel > "$. = < input type =" stille "navn =" suq_delete "værdi =" slette udvalgte citater! "> "$. = < /form > « tilbage $;}, acceptere brugeridentifikation, fordi vi har brug for at få en liste over tilbud for den pågældende bruger kun skabe $args at præcisere vores bruger, efter type af citater og citater, der er indtil (endnu ikke offentliggjort i administration), udføre en skik søgning ved hjælp af wp_query, tilbage, hvis vores søgning returnerer ikke falske citater, starte en form og skabe en voldtægtsforbryder i form, loop gennem citater, at sikre, at vi også tager den kategori, de citerer, skabe en pædofil for citerer slette afkrydsningsfelt, tildeler et entydigt navn foreløbig af concatenating post - id, produktionen af en tabel række, der indeholder de citerer info samt en slette afkrydsningsfelt, hvorfor tilføje en pædofil for hver enkelt citat?formularer kan manipuleres i browseren til post tilbage uventede data.i vores tilfælde hver slette afkrydsningsfelt tildeles værdien af en post.men hvad hvis en ondsindet bruger ændret denne værdi og forårsaget vores slette funktion for at fjerne en stilling, som ikke blev nævnt.en måde at undgå dette, er at anvende nonces for hver række efter data, således at det sikres, at nonces er enestående ved navn med post - værdi skal udgå.vi vil kontrollere pædofil på form indgivelse, for at sikre, at det er en virkelig tilbagevenden værdi., funktion suq_delete_quotes ($quotes_to_delete) ($quotes_deleted = 0; for hvert ($quotes_to_delete som $citerer) (hvis (isset ($_post ['suq_post_delete_id_ ".$citerer]) & & wp_verify_nonce ($_post ['suq_post_delete_id_ ".$citerer], suq_post_delete_ ".$citerer)) (wp_trash_post ($citerer); $quotes_deleted + +) afkast $quotes_deleted;}, funktion, accepterer en række citerer id for at slette, de citerer id er kontrolleret for at se, om en pædofil blev skabt for det, hvis de lige nu kontrollerer, smadrer vi den citerer ved hjælp af wordpress funktion wp_trash_post, trin 6 nogle stil, smid den stil info til style.css fil i temaet folder:,suq_quote_author (bredde: 300px;}suq_quote_text (bredde: 400px. højde: 100px;}citater (skriftstørrelse: 12px;}citater - {tekst tilpasse: venstre},, trin 7 prøver det, aktivere stik af, - shortcode på en side, log ind i dit sted, og teste det. den fulde stik af kode kilde og en demo stedet linker opført i toppen af denne forelæsning. kilden folder indeholder også en wordpress side model med en skik loop, der viser offentliggjort tilbud for alle brugere, sidste tanker, de citerer stik af, kan forbedres ved at tilbyde en edit mulighed.som det er, at brugerne kan kun slette deres prisstillelser, du kan også omfatte en mulighed for at gøre tingene image, upload, måske tilføje nogle skik områder til citater efter type, citerer meta - info, nyttige links,, wordpress nonces, sædvane efter typer skik taxonomies,