PHP dhe forma. PHP _SELF në atributin e formës së veprimit Cila është vlera e PHP _SELF

Përditësimi i fundit: 1/11/2015

Një nga mënyrat kryesore për të transmetuar të dhëna në një faqe interneti është përmes përpunimit të formularit. Formularët përfaqësojnë elemente të veçanta të paraqitjes HTML që akomodojnë elementë të ndryshëm të hyrjes - fusha teksti, butona, etj. Dhe duke përdorur këto forma, ne mund të futim të dhëna dhe t'i dërgojmë ato në server. Dhe serveri tashmë po i përpunon këto të dhëna.

Krijimi i formularëve përbëhet nga aspektet e mëposhtme:

    Krijimi i një elementi në paraqitjen HTML

    Shtoni një ose më shumë fusha hyrëse për secilin element

    Vendosja e metodës së transferimit të të dhënave: GET ose POST

    Vendosja e adresës për ta bërë më të lehtë futjen e të dhënave

Epo, le të krijojmë një formë të re. Për këtë qëllim është i rëndësishëm skedari i ri form.php, i cili në vend të:

Identifikohu në sit Identifikohu:

Fjalëkalimi:

Atributi action="login.php" i elementit të formës specifikon që të dhënat e formularit do të përpunojnë skriptin login.php, e cila është e njëjtë me skedarin formë.php në një dosje. Dhe atributi "POST" tregon se metoda POST do të përdoret si metodë e transferimit të të dhënave.

Tani mund të krijojmë skedarin login.php, çfarë lloj përparimi sulmues:

Për të nxjerrë të dhëna nga formulari, përdorni ndryshimin global $_POST. Ky është një grup shoqërues i të dhënave të kaluara në metodën POST. Çelësat Vikorist, ne mund të heqim vlerat e caktuara. Çelësat e këtij grupi janë vlerat e atributeve të emrit të fushave të hyrjes së formularit.

Meqenëse atributi i emrit të fushës së hyrjes së hyrjes ka vlerën login(), atëherë në grupin $_POST të fushës së vlerës përfaqësohet çelësi "login": $_POST["login"]

Ekzistojnë disa situata të mundshme nëse fusha e hyrjes vendoset, për shembull, kur shkoni direkt në skript: http://localhost:8080/login.php. Në këtë rast, përpara se të përpunohen të dhënat, është e nevojshme të kontrollohet nëse ato janë të disponueshme në funksionin shtesë isset(). Nëse ndryshimi vendoset, funksioni isset() e kthen vlerën në true.

Tani mund të kthehemi te forma:

Dhe pasi të shtypni butonin enter, të dhënat do të dërgohen në skript duke përdorur metodën POST login.php:

Nuk është e nevojshme të mbingarkoni të dhënat e formularit me një skript tjetër, ju mund të përpunoni formularët në të njëjtin skedar formulari. Për kë është modifikuar skedari? formë.php Le të përparojmë me gradë:

Identifikohu në sit Identifikohu:

Fjalëkalimi:

Siguria e të dhënave

Me rëndësi të madhe për PHP është organizimi i sigurisë së të dhënave. Le të shohim një numër mekanizmash të thjeshtë që mund të përmirësojnë sigurinë e faqes sonë të internetit.

Së pari, le të marrim formularin nga temat e mëparshme dhe të përpiqemi të plotësojmë hapat e dhënë. Për shembull, futni "alert(hi);" në fushën e hyrjes dhe "fjalëkalimin" në fushën e fjalëkalimit:

Pas plotësimit të të dhënave me shënjimin HTML, kodi JavaScript do të dërgohet për të shfaqur dritaren e njoftimit.

Për të shmangur probleme të tilla sigurie, përdorni funksionin htmlentities():

If(isset($_POST["login"]) && isset($_POST["fjalëkalimi"]))($login=htmlentities($_POST["login"]); $password = htmlentities($_POST["fjalëkalimi" ]), echo "Hyrja juaj: $login
Fjalëkalimi juaj: $password";)

І futni pasi të keni futur kodin html ose javascript, të gjitha etiketat do të shmangen dhe ne do të kalojmë hapin tjetër:

Një funksion tjetër - funksioni strip_tags() ju lejon të aktivizoni plotësisht etiketat HTML:

If(isset($_POST["login"]) && isset($_POST["fjalëkalimi"]))($login=strip_tags($_POST["login"]); $password = strip_tags($_POST["fjalëkalimi" ]), echo "Hyrja juaj: $login
Fjalëkalimi juaj: $password";)

Rezultati i kësaj pune, me të njëjtën hyrje, do të jetë ofendues.

“Mos abuzoni me operatorin goto”, kështu na thanë akademikët në akademi dhe është e vërtetë që ky operator e kthen kodin në një rrëmujë të tërë. Zhvilluesit e PHP e kanë zgjidhur problemin rrënjësisht - php3 dhe php4 thjesht nuk e kanë atë. Pse e keni nuhatur erën që në fillim? Ndoshta keni dashur të na mësoni të gjithëve stilin e duhur të programimit? Epo, mund të themi se është zhdukur plotësisht - të gjithë tashmë kemi telefonuar, kështu që është më mirë të themi se kemi identifikuar qartë llojin e operatorit, ndoshta edhe më mirë, pasi sapo më ka dalë një ndërtim logjik si p.sh. kompensuar plotësisht për këtë goto fatkeq.
Nuk e di për askënd, por për mua, veçanërisht shpesh kam ndjerë nevojën për të vikorystuvovat goto kur krijoj një mostër të formave html, nëse koristuvach dërgohet në server pa të dhëna personale, pasi skripti php duhet të kontrollohet hap pas hapi hap. Procesi zakonisht zhvillohet në disa faza: procesi i të njëjtës formë, verifikimi i të dhënave të nxjerra, shfaqja përpara dhe, për shembull, ruajtja. Për më tepër, këto hapa mund të përsëriten: nëse verifikimi i të dhënave nuk ka shkuar mirë, kalojmë në forma të tjera, ose nëse ekrani i mëparshëm nuk kontrollohet nga korrespondenti, ato mund të kthehen para se të futen të dhënat. Me pak fjalë, me sa duket, disa pjesë kodi mund të përfshihen shumë. Gjithashtu nuk është shumë e lehtë të kuptosh funksionet në këto mendje - ka shumë hyrje dhe dalje, funksioni detyrohet të përpilojë veprime komplekse, është shumë e vështirë të dalë dhe lexueshmëria e kodit bie ndjeshëm.
Dhe pashë një dizajn të tillë boshti.

.
Ju jeni një vjeç.

Shembull i këtij programi:

Përshëndetje Sergiu. Ju jeni tridhjetë vjeç.

Ju lutemi mos u shqetësoni me kodin me htmlspecialchars() dhe (int), parimi i kodit robotik mund të jetë i thjeshtë dhe i kuptueshëm. htmlspecialchars() siguron që karakteret "speciale" HTML janë të koduara saktë në mënyrë që HTML ose Javascript i panevojshëm të mos futet në faqen tuaj. Fusha e moshës, pasi e dimë se është një numër, thjesht mund të ndryshohet në një numër të plotë, i cili automatikisht do të na shpëtojë nga karakteret e panevojshme. PHP gjithashtu mund të gjenerojë automatikisht shtesa shtesë filtri. Cilësimet $_POST["emri"] dhe $_POST["mosha"] instalohen automatikisht për ju nga PHP. Më parë, ne vikoristuam ndryshimin superglobal $_SERVER, por këtu jemi vikorist ndryshimin superglobal $_POST, në mënyrë që të heqim të gjitha të dhënat POST. I dashur shkolle metoda e redaktimit(metoda) e formës sonë është POST. Metoda Yakbi mi vikoristovali MARR, atëherë informacioni i formës sonë do të ishte në ndryshimin superglobal $_GET. Nga rruga, ju mund të përdorni ndryshimin $_REQUEST, pasi të dhënat nuk janë të rëndësishme. Kjo është mënyra e vetme për ta bërë këtë: GET, POST, COOKIE.

15 vjet më parë

Në varësi të specifikimeve HTTP, ju duhet të përdorni metodën POST nëse përdorni një formular për ndryshimin e artikujve në kohën aktuale në server Për shembull, faqja ofron një formular për kontribuesit e disponueshëm për të marrë komentet e tyre të reja, siç tregohet në faqen këtu , formulari duhet të përdoret POST. Nëse klikoni "Ringarko" ose "Rifresko" në faqen që keni arritur përmes një POST, është gjithmonë një gabim - nuk duhet të postoni të njëjtin koment dy herë -- kjo është arsyeja pse këto faqe nuk janë' t shënjuar ose memorizuar.

Ju duhet të përdorni metodën GET nëse forma juaj është e mirë, në mënyrë që të largoni kohë nga serveri dhe të mos ndryshoni gjithsesi. Për shembull, metoda e kërkimit është rreptësisht për shkak të përdorimit të GET, kështu që kur lexoni një faqe interneti është e nevojshme të mos ndryshoni asnjë ide se klienti mund të aksesojë shpejt atë, dhe të shënojë ose të ruajë rezultatet e një pyetjeje të motorit të kërkimit. është po aq i dobishëm sa faqeshënuesi ose faqja statike HTML.

2 vite më parë

Vlen të sqarohet:

POST nuk është më i sigurt se GET.

Arsyeja e zgjedhjes GET vs POST përfshin dallimet në fabrikë, të tilla si trashëgimia (çfarë është "konfuzioni"? URL) dhe si mund të ndërtoni një funksion që të jetë i ndashëm -- për shembull, "Kërkimet në Google" - Merrni sepse e bën të lehtë për të kopjuar dhe ndarë pyetjen e kërkimit me dikë që humbet thjesht duke ndarë URL-në.

Shëndeti është vetëm një shikim, por në realitet, GET është më e lehtë për t'u ndarë sesa një POST. Në fakt: nuk është e nevojshme të shkruani fjalën për të qenë në GET, sepse përdoruesi do të përdorë URL-në dhe do ta zbulojë në mënyrë të habitshme atë fjalë.

Megjithatë, GET dhe POST janë njësoj të pranueshme për interpretim për të akomoduar njerëz të vegjël që nuk ekspozojnë TLS/SSL për të mbrojtur lidhjen me të.

Të gjitha format janë HTTP (duke përdorur portin 80) dhe që nga sot (2017), ka shumë mendje të mira për faqet e internetit të mëdha për të shmangur shkeljen e HTTPS (që është parimi i HTTP + Sigurisë së Shtresës së Transportit).

Si bonus, nëse përdorni TLS, minimizoni rrezikun që klientët tuaj të heqin kodin (AD-të), të hyjnë në transportin tuaj pa shkuar atje.

4 vjet me pare

Sythet Do-while mund të përdoren gjithashtu për sythe të tjera, për shembull:



Ky version është më i lehtë për t'u lexuar dhe kuptuar. Dhe argumentet për kodin golf janë të pasakta sepse ky version ka 3 rreshta më të shkurtër.

Në radhë të parë, nëse mund të shkruani kodin që abuzon me fjalën kyçe 'break', ju jeni fajtor për praktikë.

10 vjet më parë

Unë jam fajtor që shkruaj konstruksione me kllapa kaçurrelë ndonjëherë... shkrimi i do--ndërsa m'u duk pak i çuditshëm pa kllapa kaçurrelë (( dhe )), por në çdo rast ka informacion për ato që shkruhen me një do --while. ..

një kohë normale:


një do-ndërsa:


Gjithashtu, si një çështje praktike, nëse jeni vikorist do-while, sepse e thjeshtë, ndërsa thjesht nuk do të bëjë (lol)... kopjimi i shumë nyjeve të nivelit të dytë nga një dokument në tjetrin duke përdorur shtesën DOM XML

Filtrat janë ato që lejojnë temat dhe shtojcat të ndryshojnë sjelljen e bërthamës së WordPress pa ndryshuar skedarët dalës të vetë bërthamës së WordPress. Ky artikull do t'ju tregojë se si funksionojnë filtrat dhe funksionet në WordPress dhe si përdoren ato në temat dhe shtojcat tuaja.

Podii

Pods ose veprimet në WordPress janë shumë të ngjashme me ato në JavaScript. Funksioni tregohet duke thirrur funksionin do_action() dhe funksioni mund të shtohet në çdo veprim duke përdorur funksionin shtesë add_action().

Në fund të ditës, të gjitha funksionet e shtuara në porosinë e specifikuar do të përfundojnë. Është më e lehtë për t'u kuptuar me ndihmën e një prapanicë të thjeshtë. Ekzistojnë tre funksione që nxjerrin 1, 2 dhe 3 rreshta:

Funksioni një () ( jehona 1; ) funksioni dy () ( jehona 2; ) funksioni tre () ( jehona 3; )

Ne shtojmë funksione në subfoo pas funksionit shtesë add_action():

Add_action("foo", "one"); add_action("foo", "dy"); add_action("foo", "tre");

Dhe ne ia caktojmë konceptin tonë funksionit shtesë do_action():

Do_action ("foo"); // vivede 123

Argumenti i parë i funksionit është sekuenca foo - emri i nënndarjes. Emri mund të jetë sido që të jetë, por për të shmangur konfliktet me shtojcat dhe temat e tjera në autoritetet, është më mirë të përdorni një parashtesë, për shembull myplugin_foo, kështu që myplugin nuk është emri i shtojcës suaj.

Një argument tjetër për funksionin add_action() është funksioni që thirret në momentin që veprimi përfundon. Funksionet brenda një nënseksioni caktohen në të njëjtin rend me të cilin janë shtuar në nënseksion, përveç nëse funksioni i shtohet nënseksionit me një përparësi më të lartë ose më të ulët. Për prioritetet e të vegjëlve çdo vit.

E pra, shembulli ynë i quan funksionet one(), two() dhe three() me rend, i cili shfaqet në ekranin 123. Pra, ne mund t'i thërrasim në mënyrë të pavarur këto funksione në çfarëdo radhe në vendin do_action(), i cili do të jepte të njëjtin rezultat. Pra, cili është qëllimi i vikorizmit?

Është koha për vikorista

Çdo shtesë ose temë tjetër mund të shtojë ose heqë lehtësisht funksione nga platforma juaj pa pasur nevojë të ndryshoni kodin e shtojcës suaj. Kjo qasje do ta bëjë shtojcën tuaj më fleksibël. Për shembull:

/* Në një shtojcë tjetër */ funksioni katër() ( echo 4; ) remove_action("foo", "tre"); add_action("foo", "four");

Në këtë mënyrë, nëse shkoni te butoni i djathtë i nën-funksionit të shtojcës suaj, ekrani nuk do të shfaqë më 123, por 124, pasi plug-in-i tjetër ka parë funksionin three() nga nën-funksioni juaj pas funksioni shtesë remove_action() dhe shtuar Ky është vendi për funksionin e ri katër ( ).

Shembulli nga numrat e nxjerrë nuk është më i miri. Në praktikë, është e lehtë të lindësh ide për temën ose shtojcat tuaja që mund të jenë të dobishme për shtojcat e tjera, për shembull:

Vlen gjithashtu të theksohet se në thelbin e WordPress ka më shumë se 1500 filtra dhe filtra që mund të modifikohen në tema dhe shtojca.

Filtro

Filtrat e WordPress janë shumë të ngjashëm me faqen. Përgjegjësia kryesore është që filtrat matin vlerat që transmetojnë funksionin e lëkurës, dhe për këtë arsye funksioni i lëkurës duhet të rrotullohet ose të ndryshojë vlerën. Le të hedhim një vështrim në një shembull të thjeshtë:

Funksioni plus_one ($value) ($value = $value + 1; kthen $value; )

Ky funksion merr një argument, shton një te tjetri dhe e rrotullon rezultatin. Ne e shtojmë funksionin tonë në filtrin e ri duke përdorur add_filter():

Add_filter("foo", "plus_one");

Tani të gjitha funksionet e shtuara në filtrin foo (në shembullin tonë ka vetëm një funksion) mund të thirren lehtësisht ose të shtohen në funksionin shtesë apply_filters():

Echo application_filters ("foo", 5); // 6

Funksioni application_filters() përdor një argument tjetër për të kaluar vlerën që filtrohet. Kjo mund ose nuk mund të transmetohet në funksionin e lëkurës që lidhet me filtrin, në këtë rast filtri mund të ndryshojë vlerën.

Në këtë dritare, vlera 6 do të shfaqet në ekran, pjesa e mbetur e vlerës 5 kaloi përmes funksionit plus_one(), i cili ndryshoi vlerën origjinale. Nëse e hiqni funksionin nga filtri duke përdorur remove_filter(), atëherë kodi do të ketë vlerën 5:

Remove_filter("foo", "plus_one"); echo aplikoni_filtrat ("foo", 5); // 5

Pra, ashtu si kjo, funksionet e filtrave mund të shtohen në çdo shtojcë ose temë tjetër, dhe funksionet shtohen sipas radhës në të cilën janë shtuar në filtër, pas prioriteteve të reja ose të reduktuara.

Prapa e një filtri të mirë

Le të hedhim një vështrim më të afërt në pamjen e madhe: një grup masiv mesazhesh që dërgohen në profilet tona në mediat sociale dhe shfaqen në titujt e temave tona të WordPress. NË:

Funksioni get_my_social_profiles() ( $profiles = array ("twitter" => "http://twitter.com/wpmagru", "facebook" => "http://facebook.com/wpmagru",); ktheni $profiles; )

Vargu që rrotullohet mund të rrotullohet në një lak në skedarin tonë header.php:

$profiles = get_my_social_profiles(); foreach ($profile si $service => $url) ( printf("%s", esc_url($url), $service); )

/* Në funksionet.php */ funksioni get_my_social_profiles() ( $profiles = array("twitter" => "http://twitter.com/wpmagru", "facebook" => "http://facebook.com/wpmagru ",); kthe application_filters("my_social_profiles", $profiles); )

Kështu, çdo shtojcë ose temë fëmijësh mund të krijojë lehtësisht një listë të profileve sociale pa ndikuar në temën origjinale. Për shembull, mund të merrni një mesazh në Twitter dhe të shtoni një mesazh në Google+ duke përdorur kodin e mëposhtëm në shtojcën:

Funksioni change_my_social_profiles($profiles) ( unset($profiles["twitter"]); $profiles["google-plus"] = "https://plus.google.com/+wpmagru"; kthe $profiles; ) add_filter( "my_social_profiles", "change_my_social_profiles");

Filtrat dhe kategoritë në thelbin e WordPress

Siç e menduam tashmë, WordPress ka më shumë se 2000 filtra dhe opsione që mund të zbatohen shpejt në shtojca dhe tema për të ndryshuar sjelljen e bërthamës. Le të hedhim një vështrim në një tufë të pasme.

Komenti Vimknuti

Mund të aktivizoni komentimin në të gjithë faqen dhe mund të rregulloni me kujdes parametrat duke përdorur kodin e mëposhtëm:

Funksioni my_comments_open() ( return false; ) add_filter ("comments_open", "my_comments_open");

Filtri comments_open është ndërtuar në thelbin e WordPress për të kontrolluar nëse komentet e hapura janë të përditësuara apo ndryshe. Funksioni ynë fillimisht e kthen vlerën false për këtë filtër, në mënyrë që komentet të fshihen.

Para se të flasësh, thelbi i WordPress ofron një numër funksionesh shtesë për të punuar me filtra të ngjashëm:

  • __return_true() - kthehet e vërtetë
  • __return_false() - kthen false
  • __return_zero() - rrotullohet 0
  • __return_empty_string() - rrotullon rreshtin bosh
  • __return_empty_array() - rrotullon një grup bosh
  • __return_null() - kthen null

Pastaj filtri ynë në comments_open mund të rishkruhet në një rresht:

Add_filter("comments_open", "__return_false");

Ndryshoni datën e kuotave automatike

Për një duzinë citate automatike, filtri excerpt_length tregon:

Funksioni my_excerpt_length($length) ( $length = 10; return $length; ) add_filter("gjatësia_ekscerpt", "gjatësia_excerpt_my");

Duke përdorur filtrin excerpt_more, mund të ndryshoni tekstin që vendoset në fund të kuotimit automatik, duke ndjekur [...]:

Funksioni my_excerpt_more($more) ( $more = "→"; kthe $more ) add_filter("excerpt_more", "my_excerpt_more");

Shtoni një baner në statusin e lëkurës

Filtri i përmbajtjes_ kontrollohet përpara se të shfaqet në vend të statistikave të lëkurës. Ju mund ta kaloni vetë filtrin në vend të statistikave, kështu që është e lehtë të shtoni një baner "për shfaqje" duke përdorur një shtojcë shtesë:

Funksioni my_banner($content) ( $banner = " $përmbajtje = $bander . $përmbajtje; ktheni $përmbajtje; ) add_filter("the_content", "my_banner");

Shto favicon.ico në seksion

Seksioni i lëkurës përcaktohet si wp_head. Në këtë moment, mund ta dërgoni mesazhin te skedari favicon.ico, të futni kod shtesë JavaScript ose CSS dhe shumë më tepër:

Funksioni my_favicon() (echo ""; ) add_action("wp_head", "my_favicon");

Ju lutemi vini re se nëse keni nevojë të përfshini skedarë të jashtëm .js ose .css, punoni me funksionet shtesë wp_enqueue_script() dhe wp_enqueue_style() nën wp_enqueue_scripts në vend të drejtpërdrejtë në wp_head.

Versioni i ri i WordPress vjen me gjithnjë e më shumë filtra dhe opsione të reja. Një listë e shumicës së filtrave dhe funksioneve në kernel mund të shihet në faqen e internetit të Adam Brown ose duke skanuar skedarët e kernelit në "do_action" dhe "apply_filters".

Prioritetet

Funksionet e shtimit të filtrave dhe filtrave janë caktuar sipas radhës në të cilën janë shtuar, por rendi mund të ndryshohet lehtësisht sipas prioriteteve të tjera. Prioriteti tregohet nga argumenti i tretë për funksionet add_action() dhe add_filter().

Pa një argument të caktuar, funksionet deri në filtra dhe hapa shtohen sipas prioritetit 10. Funksionet renditen nga prioriteti më i ulët në atë më të lartë. Nëse përparësia është më e ulët, funksioni anulohet fillimisht.

Le të shohim numrat, për shembull:

Add_action("foo", "one"); add_action("foo", "dy"); add_action("foo", "tre"); do_action ("foo"); // vivede 123

Nëse e ndryshoni prioritetin e funksionit three() në 9, ai do të përfundojë përpara të tjerëve:

Add_action("foo", "one"); add_action("foo", "dy"); add_action("foo", "tre", 9); do_action ("foo"); // vivede 312

Në mënyrë të ngjashme, duke treguar përparësinë e funksionit të 11-të one(), ai përfundon më vonë se të gjithë të tjerët, pavarësisht nga ato që u shtuan së pari pas add_action():

Add_action("foo", "one", 11); add_action("foo", "dy"); add_action("foo", "tre", 9); do_action ("foo"); // vivede 321

Parametrat shtesë

Për një funksion të lëkurës të lidhur me një filtër ose skenë, parametrat shtesë mund të transferohen lehtësisht. Kini kujdes kur thërrisni funksionin do_action() ose application_filters(), për shembull:

Do_action("foo", $arg1, $arg2, $arg3); $value = aplikoni_filtrat ("foo", $value, $arg1, $arg2, $arg3);

Pika kryesore është se kur shtojmë një funksion në një filtër ose nënlloj, duhet të specifikojmë numrin e argumenteve që do të pranohen, që është ajo që nënkupton parametri i katërt për funksionet add_action() dhe add_filter().

Për shembull, nëse një funksion nën foo dëshiron të pranojë të tre argumentet, ju duhet të jepni 3 si parametër të katërt për add_action():

Funksioni my_func($arg1, $arg2, $arg3) (...) add_action("foo", "my_func", 10, 3);

Në mënyrë të ngjashme, nëse funksioni i shtuar në filtër dëshiron të pranojë $arg1 si një argument shtesë, ne i kërkojmë add_filter() të kalojë vetëm dy argumente - argumentin e parë $value dhe argumentin tjetër shtesë $arg1:

Funksioni my_func($value, $arg1) (...) add_filter("foo", "my_func", 10, 2);

prapanicë

Një shembull i mirë i kalimit të argumenteve shtesë është filtri allow_password_reset, i cili mund të përdoret gjithashtu për të parandaluar ndarjen e fjalëkalimit për përdoruesit:

Add_filter("lejo_password_reset", "__return_false");

Kjo është për të mbrojtur ndarjen e fjalëkalimit për të gjithë përdoruesit në sajt, pasi ne duhet të mbrojmë ndarjen e fjalëkalimit vetëm për superadministratorët të paktën (me masa sigurie), ne mund të përdorim shpejt një argument shtesë:

Funksioni my_filter($allow, $user_id) ( if (is_super_admin($user_id)) $allow = false; kthe $allow; ) add_filter("lejoj_password_reset", "my_filter", 10, 2);

Vini re se funksionet e lidhura me filtrat mund të ndryshojnë argumentin e parë të kaluar në filtër. Në mënyrë që funksioni të zbatohet, ju mund të ndryshoni vetëm argumentin $allow, në vend të $user_id.

Në mënyrë që funksionet të jenë në gjendje të ndryshojnë më shumë se një argument që kalohet, filtrat (dhe funksionet) mund t'i kalojnë shpejt objektet e ndryshueshme në PHP, ngjashëm me funksionin pre_get_posts.

OOP, klasa, objekte dhe funksione anonime

Shitësit e temave dhe shtojcave të WordPress shpesh favorizojnë një stil programimi të orientuar nga objekti, ku shumica e kodit shkruhet brenda objektit dhe jo në hapësirën globale. Për shkak se funksionet add_action() dhe add_filter() nuk duhet të kalojnë një funksion klikimi, por një metodë objekti, e cila duhet të kalojë në një format të veçantë grupi:

Klasa My_Class ( funksioni __construct() ( add_filter ("the_content", array($this, "filter_content"))); ) funksioni filter_content($content) ( // ... ktheni $content; ) ) Klasa_e_e re ();

Ju mund të kaloni një metodë statike në një klasë në një mënyrë të ngjashme:

Add_filter("the_content", array("My_Class", "filter_content")); add_filter("the_content", "My_Class::filter_content"); //PHP>=5.2.3

Filtrat dhe kategoritë mbështesin funksione anonime, për shembull:

Add_filter("the_content", create_function("$content", "return $content;")); add_filter("the_content", funksion ($përmbajtje) (ktheje $content; )); //PHP>=5.3

Ne nuk rekomandojmë përdorimin e funksioneve anonime me filtra dhe nënfunksione të WordPress, pasi ato janë të vështira për t'u zbatuar (për shembull, me një shtojcë shtesë) dhe funksioni create_function() nuk ruhet në memorie si bytekodi, për shembull në APC.

Visnovok

Filtrat dhe konceptet qëndrojnë në thelbin e vetë WordPress-it dhe puna me to kërkon që përdoruesi të zotërojë temat dhe shtojcat, dhe vetë filtrat dhe konceptet ju lejojnë të zgjeroni thelbin e sistemit popullor.

Zhvilluesit e temave dhe shtojcave për WordPress nuk duhet të harrojnë filtrat dhe veçoritë në produktet e tyre zyrtare në mënyrë që t'i bëjnë ato më modulare, fleksibël dhe lehtësisht të ndryshueshme duke përdorur kodin e palëve të treta.

Nëse keni ndonjë pyetje në lidhje me filtrat dhe funksionet në WordPress, ju lutemi lini një koment dhe ne do t'ju informojmë patjetër.