WordPress umritunarforritið

WordPress er með mjög gagnlegt API sem kallast „the umrita API“. Ætli það hafi þegar verið af „url umritun“, þetta er ferlið sem gerir vefslóðir læsilegri. Til dæmis er slóð sem er skrifuð eins og þessi http://mysite.com/?page=12&category=12&author=47 ekki svo falleg. Það er erfitt að muna það og leitarvélum líkar það ekki svo mikið. Þess vegna er næstum hvert CMS með innbyggða aðgerð sem „endurskrifar“ slóðina til að láta þær líta svona út: http://mysite.com/category/business/finance.


Umrita API og WP_Rewrite bekkinn

Inni í WordPress er þetta ferli einnig þekkt sem permalinks uppbygging. Þegar þú skiptir úr sjálfgefnu permalink uppbyggingu yfir í sérsniðna uppbyggingu virkjarðu umritunarforritið sjálfkrafa. Þetta er fullkomlega sjálfvirkt. En stundum þarftu að búa til þínar eigin sérsniðna umskrifareglur.

Í þessari færslu ætlum við að búa til einfaldar aðgerðir til að búa til einfalda sérsniðna umritunarreglu. Við skulum segja að við viljum fá tilvísunargildi, eins og jafngildir $ _GET [‘referrer’].

Ef við skoðum Codex getum við séð á umritunar API síðu að þetta API er með 6 innbyggðum aðgerðum. Algengasta notkun umritunarinnar er að nota þessar aðgerðir, það eru fullt af námskeiðum um það, þess vegna ætla ég að nota síur í stað aðgerða. Vegna þess að já, þá er einnig hægt að nota umritunarforritið með síum! Þessar síur eru skráðar á WP_Rrrite bekk Codex síðu.

Bætir við nýrri fyrirspurn Var

Til að byrja verðum við að búa til aðgerð sem mun segja WordPress að ný umskrifaregla sé stillt. Þetta er starf stofnunarinnar add_rewrite_rule () og add_rewrite_tag ()  aðgerðir, en þú getur líka gert það með query_vars og umrita_reglur_array síur. Til að gera það verðum við að búa til tvær aðgerðir og tvær síur. Fyrsta aðgerðin er að fara einfaldlega að bæta við nýrri breytu í query_vars síuna og sú seinni er að fara að skrá þessa nýju breytu í alþjóðlegu umritunarreglurnar:

/ *
|--------------------------------------------------------------------------
| Byrjaðu að umrita. Dæmi: http://mysite.com/referrer/remi
|--------------------------------------------------------------------------
* /

// Skráðu nýjan var
fall rc_add_query_vars ($ vars) {
$ vars [] = "tilvísandi"; // heiti var eins og sést á slóðinni
skila $ vars;
}

// Krókið hlutverk okkar í query_vars
add_filter ('fyrirspurn_vars', 'rc_add_query_vars');

// Bættu nýju umritunarreglunni við þær sem til eru
fall rc_add_rewrite_rules ($ reglur) {
$ new_rules = fylki ('referrer / ([^ /] +) /? $' => 'index.php? referrer = $ samsvarar [1]');
$ reglur = $ new_rules + $ reglur;
skila $ reglum;
}

// Hakaðu aðgerðina í umrita_reglur_array
add_filter ('umskrifa_reglur_array', 'rc_add_rewrite_rules');

Þegar þú hefur bætt þessum kóða við einhvern af viðbótarskránni þinni eða þemafunktunum.php skránni, komst að stillingum> Permalinks og vistaðu permalinks uppbygginguna. Þessa aðgerð er þörf. Þú ættir nú að geta nálgast síðuna þína með þessu tagi eða url: http://mysite.com/referrer/your-name. Ef þú vilt vera vísað á tiltekna síðu skaltu breyta index.php? Referrer = $ samsvarandi [1] eftir index.php? Pagename = my-page & referrer = $ matches [1] þar sem „my-page“ er síðan sem á að vera vísað til snigils.

Sækir breytilegt gildi

Nú þegar umskrifareglan þín er stillt gætirðu viljað fá aðgang að breytilegu gildi. En ef þú gerir einfaldan $ _GET [‘tilvísandi’] færðu ekkert gildi. Til að sækja URL vars gildi þarf að tengja aðgerð við „template_redirect“ síuna. Það er of snemmt að krækja í „init“ síuna. Síðan geturðu nálgast nauðsynlegar breytur í gegnum $ wp_query hlutinn. Hér er fljótt sýnishorn af því hvernig á að gera það:

// Sækja URL var
fall rc_get_my_vars () {
alþjóðlegt $ wp_query;

if (isset ($ wp_query-> query_vars ['referrer'))) {
$ referrer = get_query_var ('tilvísandi');
}
}

// Hakaðu aðgerðina inn á template_redirect
add_action ('template_redirect', 'rc_get_my_vars');

Þú getur næst bergmálað gildi $ tilvísunar eða notað það eins og gert hefði verið með venjulegri GET breytu.

Þú getur auðvitað breytt notkun fleiri en einnar breytu:

// í rc_add_query_vars ()
$ vars [] = "tilvísandi";
$ vars [] = "herferð";

// í rc_add_rewrite_rules ()
$ new_rules = fylki ('tilvísandi / ([^ /] +) / ([^ /] +) /? $' => 'index.php? pagename = my-page & referrer = $ samsvarar [1] & herferð = $ samsvarar [ 2] ');

Ekki gleyma því að þú þarft PHP mod_rewrite eining til að nota til að endurskrifa url.

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