WordPress Rewrite API

WordPress on tõesti kasulik API, mida nimetatakse „ kirjutage API ümber“. Arvan, et juba URL-ide ümberkirjutamine, see on protsess, mis muudab URL-id loetavamaks. Näiteks niimoodi kirjutatud URL http://mysite.com/?page=12&category=12&author=47 pole just nii hea välimusega. Seda on raske meeles pidada ja otsimootoritele see nii ei meeldi. Sellepärast on peaaegu igal CMS-il sisseehitatud funktsioon, mis “kirjutab ümber” URL-id, et muuta need selliseks: http://mysite.com/category/business/finance.


Rewrite API ja WP_Rewrite klass

WordPressis tuntakse seda protsessi ka kui permalinkide struktuur. Kui lülitate püsilinkide vaikestruktuurilt kohandatud struktuurile, aktiveerite automaatselt ümberkirjutamise API. See on täisautomaatne. Kuid mõnikord peate looma oma kohandatud ümberkirjutamise reeglid.

Selles postituses hakkame looma lihtsaid funktsioone, et luua lihtne kohandatud ümberkirjutamise reegel. Ütleme nii, et tahame saada viitaja väärtust, mis on samaväärne $ _GET [‘viitajaga’].

Kui vaatleme koodeksi, näeme API ümberkirjutamise lehel, et sellel API-l on 6 sisseehitatud funktsiooni. Kõige sagedamini kasutatakse ümberkirjutamist nende funktsioonide kasutamisel, selle kohta on palju õpetusi, sellepärast hakkan funktsioonide asemel kasutama filtreid. Kuna jah, ümberkirjutamise API-d saab kasutada ka filtritega! Need filtrid on loetletud WP_Kirjuta klass Codexi leht.

Uue päringumuutori lisamine

Alustamiseks peame looma funktsiooni, mis annab WordPressile teada, et uus ümberkirjutamise reegel on seatud. See on ju add_rewrite_rule () ja add_rewrite_tag ()  funktsioone, kuid saate seda teha ka kasutades päringu_vars ja rewrite_rules_array filtrid. Selleks peame looma kaks funktsiooni ja kaks filtrit. Esimene funktsioon on lihtsalt uue muutuja lisamine päringu_vars filtrisse ja teine ​​see uus muutuja registreeritakse globaalsetes ümberkirjutamisreeglites:

/ *
|--------------------------------------------------------------------------
| Alusta ümberkirjutamist. Näide: http://mysite.com/referrer/remi
|--------------------------------------------------------------------------
* /

// registreerige uus var
funktsioon rc_add_query_vars ($ vars) {
$ vars [] = "viitaja"; // vari nimi URL-ist nähtuna
tagasi $ vars;
}

// Haarake meie funktsioon päringvarianditeks
add_filter ('query_vars', 'rc_add_query_vars');

// Lisage uus ümberkirjutamisreegel olemasolevatele
funktsioon rc_add_rewrite_rules ($ reeglid) {
$ new_rules = array ('viitaja / ([^ /] +) /? $' => 'index.php? viitaja = $ sobib [1]');
$ reeglid = $ new_rules + $ reeglid;
tagasta $ reeglid;
}

// Haarake funktsioon rewrite_rules_array
add_filter ('rewrite_rules_array', 'rc_add_rewrite_rules');

Kui olete selle koodi lisanud mõnele pistikfailile või teemafailile function.php, pääsete seadetesse> Permalinks ja salvestate permalinkide struktuuri. See toiming on vajalik. Nüüd peaksite oma saidile juurde pääsema seda tüüpi või URL-iga: http://mysite.com/referrer/your-name. Kui soovite, et teid suunataks konkreetsele lehele, muutke index.php? Referenrer = $ vasteid [1] indeksiga phph? Lehe nimi = minu leht ja viitaja = $ sobib [1], kus „minu leht“ on see leht, milleks soovite suunati nälkjaks.

Muutuja väärtuse toomine

Nüüd, kui teie ümberkirjutamisreegel on seatud, võiksite juurdepääsu muutuja väärtusele. Kuid kui teete lihtsa $ _GET [‘viitaja], ei saa te mingit väärtust. URL-i vars-väärtuste toomiseks peate funktsiooni siduma filtrisse „mall_redirect”. Filtri „init“ ühendamine on liiga vara. Siis pääsete vajalikele muutujatele juurde objekti $ wp_query kaudu. Siin on kiire näide, kuidas seda teha:

// Hankige URL var
funktsioon rc_get_my_vars () {
globaalne $ wp_query;

if (isset ($ wp_query-> query_vars ['viitaja']))) {
$ viitaja = get_query_var ('viitaja');
}
}

// Haarake funktsioon mall_redirektiivi
add_action ('template_redirect', 'rc_get_my_vars');

Järgmisena saate korrata $ viitaja väärtust või kasutada seda nagu tavalise GET muutuja korral.

Muidugi saate muuta rohkem kui ühte muutujat:

// rc_add_query_vars-is ()
$ vars [] = "viitaja";
$ vars [] = "kampaania";

// rc_add_rewrite_rules ()
$ new_rules = array ('viitaja / ([^ /] +) / ([^ /] +) /? $' => 'index.php? lehe nimi = minu leht & viitaja = $ vasteid [1] ja kampaania = $ vastet [ 2] ');

Ärge unustage, et URL-i ümberkirjutamise kasutamiseks on vaja PHP mod_rewrite moodulit.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map