A WordPress Rewrite API

WordPress van egy igazán hasznos API, az úgynevezett újraírja az API-t„. Azt hiszem, hogy már létezik „URL átírás”, ez az a folyamat, amely az URL-eket jobban olvashatóvá teszi. Például egy ilyen módon írt URL a http://mysite.com/?page=12&category=12&author=47 nem olyan jó megjelenésű. Nehéz megjegyezni, és a keresőmotorok nem nagyon kedvelik. Ez az oka annak, hogy szinte minden CMS rendelkezik beépítési funkcióval, amely „újraírja” az URL-eket, hogy így nézze ki őket: http://mysite.com/category/business/finance.


Az újraírási API és a WP_Rewrite osztály

A WordPress-en belül ezt a folyamatot is nevezik permalinks struktúra. Amikor az alapértelmezett állandó link struktúráról egyéni struktúrára vált, automatikusan aktiválja az újraírási API-t. Ez teljesen automatikus. De néha létre kell hoznia saját egyéni átírási szabályait.

Ebben a bejegyzésben egyszerű funkciókat fogunk létrehozni, hogy egyszerű egyéni átírási szabályt hozzunk létre. Tegyük fel, hogy hivatkozási értéket akarunk szerezni, amely hasonló a $ _GET [‘hivatkozó’] értékéhez..

Ha átnézzük a kódexet, akkor az újraírási API oldalon láthatjuk, hogy ezen API 6 beépítési funkcióval rendelkezik. Az átírás leggyakoribb használata ezeknek a funkcióknak a használata, rengeteg oktatóprogram van erről, ezért a szűrőket fogom használni a funkciók helyett. Mivel igen, az újraírási API szűrőkkel is használható! Ezeket a szűrőket a WP_Rewrite osztály Kódex oldal.

Új Query Var hozzáadása

Az induláshoz létre kell hoznunk egy funkciót, amely megmondja a WordPressnek, hogy új átírási szabály van beállítva. Ez a add_rewrite_rule () és add_rewrite_tag ()  függvényeket, de megteheti a query_vars és a rewrite_rules_array szűrők. Ehhez két függvényt és két szűrőt kell létrehoznunk. Az első funkció az, hogy egyszerűen hozzáad egy új változót a query_vars szűrőhöz, a második pedig ezt az új változót regisztrálja a globális újraírási szabályokba:

/ *
|--------------------------------------------------------------------------
| Indítsa el az újraírást. Példa: http://mysite.com/referrer/remi
|--------------------------------------------------------------------------
* /

// Új var. Regisztrálása
rc_add_query_vars ($ vars) függvény {
$ vars [] = "hivatkozó"; // a var neve az URL-ben látható módon
visszatér $ vars;
}

// Akassza be függvényünket a query_vars-ba
add_filter ('query_vars', 'rc_add_query_vars');

// Adja hozzá az új átírási szabályt a létezőkhez
rc_add_rewrite_rules függvény ($ szabályok) {
$ new_rules = tömb ('referender / ([^ /] +) /? $' => 'index.php? referenrer = $ megegyezik [1]');
$ szabályok = $ new_rules + $ szabályok;
visszatérési szabályok;
}

// Akassza be a függvényt az rewrite_rules_array fájlba
add_filter ('rewrite_rules_array', 'rc_add_rewrite_rules');

Miután hozzáadta ezt a kódot valamelyik plugin-fájlhoz vagy a theme-function.php fájlhoz, eljutott a Settings> Permalinks elemre, és elmentette a permalinks struktúrát. Erre a műveletre van szükség. Mostantól hozzá kell férnie a webhelyéhez ilyen típusú vagy url címmel: http://omaszál.hu/ireferrer/maga-neve. Ha átirányítani szeretne egy adott oldalra, akkor változtassa meg az index.php? Referenrer = $ mérkőzéseit [1] index.php alapján? Oldalnév = én-oldal & referenrer = $ egyezik [1], ahol a „saját oldalam” az az oldal átirányította a meztelencsiga.

A változó érték beolvasása

Most, hogy az átírási szabály be van állítva, érdemes hozzáférni a változó értékéhez. De ha egyszerű $ _GET [‘hivatkozót] készít, akkor nem fog értéket szerezni. Az URL vars értékeinek beolvasásához be kell kapcsolnia egy funkciót a „template_redirect” szűrőbe. Túl korai lenne csatlakozni az „init” szűrőhöz. Ezután a $ wp_query objektumon keresztül elérheti a szükséges változókat. Itt van egy gyors minta, hogyan kell csinálni:

// URL var. Letöltése
rc_get_my_vars () funkció
globális $ wp_query;

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

// Akassza be a függvényt a template_redirect elembe
add_action ('template_redirect', 'rc_get_my_vars');

Ezután visszatérheti a $ referenrer értéket, vagy felhasználhatja úgy, mint egy normál GET változónál.

Természetesen módosíthat egynél több változót is:

// az rc_add_query_vars-ban ()
$ vars [] = "hivatkozó";
$ vars [] = "kampány";

// az rc_add_rewrite_rules-ben ()
$ new_rules = tömb ('hivatkozó / ([^ /] +) / ([^ /] +) /? $' => 'index.php? oldalnév = oldalam & referenrer = $ egyezés [1] és kampány = $ mérkőzés [ 2] ');

Ne felejtsd el, hogy szükség van a PHP mod_rewrite modul engedélyezésére az URL újraírásához.

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