WordPress Rewrite -sovellusliittymä

WordPress on todella hyödyllinen sovellusliittymä nimeltään “ kirjoita API uudelleen”. Luulen, että jo on ”URL-osoitteiden uudelleenkirjoittaminen”, tämä on prosessi, joka tekee URL-osoitteista paremmin luettavissa. Esimerkiksi URL-osoite, joka on kirjoitettu tällä tavalla http://omasivusto.com/?page=12&category=12&author=47, ei ole niin hyvännäköinen. Sitä on vaikea muistaa, ja hakukoneet eivät pidä siitä niin paljon. Siksi melkein jokaisessa CMS: ssä on sisäänrakennettu toiminto, joka ”kirjoittaa” URL-osoitteet, jotta ne näyttäisivät tältä: http://omasivusto.com/kategorio/yritys/rahoitus.


Uudelleenkirjoitusliittymä ja WP_Rewrite-luokka

WordPressin sisällä tämä prosessi tunnetaan myös nimellä pysyvien linkkien rakenne. Kun vaihdat oletusarvoisesta pysyvän linkin rakenteesta mukautettuun rakenteeseen, aktivoit automaattisesti uudelleenkirjoitusliittymän. Tämä on täysin automaattinen. Mutta joskus sinun on luotava omat muokatut uudelleenkirjoitussäännöt.

Tässä viestissä aiomme luoda yksinkertaisia ​​toimintoja yksinkertaisen mukautetun uudelleenkirjoitussäännön luomiseksi. Oletetaan, että haluamme saada viittausarvon, joka vastaa luokkaa $ _GET [‘viittaaja’].

Jos tarkastelemme Codexia, näemme uudelleenkirjoitusliittymän sivulla, että tällä sovellusliittymällä on 6 sisäänrakennettua toimintoa. Yleisin uudelleenkirjoituksen käyttö on käyttää näitä toimintoja, siitä on paljon opetusohjelmia, siksi aion käyttää suodattimia toimintojen sijasta. Koska kyllä, uusintasovellusliittymää voidaan käyttää myös suodattimien kanssa! Nämä suodattimet on lueteltu WP_Kirjoita luokka Codex-sivu.

Uuden kyselymuuttujan lisääminen

Aluksi meidän on luotava toiminto, joka kertoo WordPressille, että uusi uudelleenkirjoitussääntö on asetettu. Tämä on add_rewrite_rule () ja add_rewrite_tag ()  -toiminnot, mutta voit tehdä sen myös käyttämällä kysely_varia ja rewrite_rules_array suodattimet. Tätä varten meidän on luotava kaksi toimintoa ja kaksi suodatinta. Ensimmäinen funktio on yksinkertaisesti lisätä uusi muuttuja kysely_vars-suodattimeen, ja toinen rekisteröi tämä uusi muuttuja yleisiin uudelleenkirjoitussääntöihin:

/ *
|--------------------------------------------------------------------------
| Aloita kirjoittaminen. Esimerkki: http://omasivusto.com/referrer/remi
|--------------------------------------------------------------------------
* /

// rekisteröi uusi var
toiminto rc_add_query_vars ($ vars) {
$ vars [] = "viittaaja"; // muuttujan nimi näkyy URL-osoitteessa
palauta $ vars;
}

// Yhdistä funktiomme hakulausekkeisiin
add_filter ('query_vars', 'rc_add_query_vars');

// Lisää uusi kirjoitussääntö olemassa oleviin
toiminto rc_add_rewrite_rules ($ säännöt) {
$ new_rules = taulukko ('viittaaja / ([^ /] +) /? $' => 'hakemisto.php? viitaja = $ vastaa [1]');
$ säännöt = $ new_rules + $ säännöt;
palauttaa $ säännöt;
}

// Yhdistä toiminto rewrite_rules_array-tiedostoon
add_filter ('rewrite_rules_array', 'rc_add_rewrite_rules');

Kun olet lisännyt tämän koodin mihin tahansa laajennustiedostoosi tai teemafunktiot.php-tiedostoosi, pääsin asetuksiin> Permalinks ja tallenna pysyvät linkit. Tämä toiminta on tarpeen. Sinun pitäisi nyt päästä sivustoosi pääsyllä tällaisella tai URL-osoitteella: http://omasivusto.com/viittaus/nimesi. Jos haluat ohjata tietyn sivun, muuta index.php? Referenrer = $ vastaa [1] hakemistolla index.php? Sivun nimi = minun-sivu & viittaaja = $ vastaa [1], missä ”oma sivu” on sivu ohjataan etanaan.

Haketaan muuttujan arvo

Nyt kun kirjoitussääntösi on asetettu, saatat haluta käyttää muuttujan arvoa. Mutta jos teet yksinkertaisen $ _GET [‘viittajan’], et saa arvoa. URL-osoitteiden vars-arvojen noutamiseksi sinun on kytkettävä toiminto “template_redirect” -suodattimeen. Liittäminen “init” -suodattimeen on liian aikaista. Sitten voit käyttää tarvittavia muuttujia objektin $ wp_query kautta. Tässä on nopea esimerkki siitä, kuinka se tehdään:

// Hae URL-var
toiminto rc_get_my_vars () {
globaali $ wp_query;

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

// Yhdistä toiminto malliin_ohjaus
add_action ('template_redirect', 'rc_get_my_vars');

Seuraavaksi voit toistaa $ -viittausarvon tai käyttää sitä kuten olisi tehty normaalin GET-muuttujan kanssa.

Voit tietysti muokata useampaa kuin yhtä muuttujaa:

// rc_add_query_varsissa ()
$ vars [] = "viittaaja";
$ vars [] = "kampanja";

// rc_add_rewrite_rules -sovelluksessa ()
$ new_rules = array ('viittaaja / ([^ /] +) / ([^ /] +) /? $' => 'index.php? sivunimi = sivuni & viittaaja = $ ottelut [1] ja kampanja = $ ottelut [ 2] ');

Älä unohda, että tarvitset PHP mod_rewrite-moduulin käyttöönoton URL-osoitteiden uudelleenkirjoittamiseen.

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