Homepage » WordPress » URL-ek újraírása a WordPress Tippek és bővítményekben

    URL-ek újraírása a WordPress Tippek és bővítményekben

    A WordPress legújabb frissítései lehetővé tették, hogy a fejlesztők gyorsan testre szabhassák személyes weboldalaikat. Egyszerű, hogy frissítse a téma területeit, cserélje az widgeteket az oldalsávban, és még saját saját PHP kódfunkciókat is írjon. A terjeszkedés hatalmas - és az egyik népszerűség a szép URL-ek átírása.

    Van néhány módszer, amellyel az alapértelmezett WordPress átírási rendszer frissítésével járhat. Ebben a bemutatóban néhány példát megosztok és bemutatom, hogy milyen egyszerű a folyamat. Szüksége lesz valamilyen megértésre a PHP-ről, hogy kövesse a kódban lévő eseményeket, de annyira könnyű másolni és beilleszteni a saját sablonjába, gyakorlatilag nincsen munkája.

    A WP_Rewrite megértése

    Ha egyáltalán ismeri a Mod_rewrite-t az Apache szervereken, akkor felveszi a WordPress átírási szintaxist. Rendszerük még mindig egy .htaccess fájl, de a szabályokat PHP-ben kódolják. Ez valóban egy kicsit könnyebbé teszi a folyamatot, mivel jobban ellenőrizhetjük saját URL-eket.

    Azt javaslom, hogy a $ wp_rewrite osztály oldalát kövessük, mivel tonna információt tartalmaz a témáról. Van még kicsi példák is, amelyekkel mindent könnyebben meg lehet érteni. A kód nagy része közvetlenül a téma témájába írható functions.php fájlba. Kezdjük úgy, hogy megnézzük az alapértelmezett átírásokat, amelyeket már a WordPress tartalmaz.

    A $ wp_rewrite-> szabályok tartalma

    A $ wp_rewrite osztály, mint globális, hozzáférhetünk az összes belső adathoz. Amikor a saját szabályainak hozzáfűzésével jár, ezeket a tömbökkel egészítik ki $ Wp_rewrite-> szabályok. Fontos megjegyezni ezt a változót, mivel valószínűleg többször kell hivatkoznia az adatokra a fejlesztés során.

    szabályok); ?>

    Hozzáadtam ezt a kódblokkot a témámhoz page.php fájlba. Ez nagy mennyiségű adatot fog kiadni, ami nagy rendetlenségnek tűnik. De ha te Forrás megtekintése az oldalon valóban könnyű látni, hogy melyik átírási szabályok illeszkednek a fájlnévhez. Például nézzük meg a kategóriák újraszövegezésének szabályait:

    [kategória /(.+?)/?$] => index.php? category_name = $ egyezés [1] 

    A zárójelben a bal oldalon lévő bit az Apache RewriteRule, amit keresünk. Kezdve a szekcióval /kategória/ ezt követi a karakterek. Ha ez megegyezik, akkor a szerver tud hivatkozni index.php? CATEGORY_NAME = a változó helyett a végén.

    Egyéni Permalinks beállítása

    Annyi tartalom van, hogy egyedül menjen át a $ wp_rewrite osztályban. Számos más tulajdonság is hivatkozik, például $ Wp_rewrite-> category_base vagy $ Wp_rewrite-> author_base az oldalak alapértelmezett URL-struktúráinak húzásához. De a WP alapértelmezett beállításainak kivonása mellett saját szabályokat is kiépíthetünk.

    A szerzői bázis újjáépítése

    A Permalinks beállítások oldalra való belépéskor lehetőség van a kategóriák és címkék alapjainak visszaállítására. A szerzői bázis visszaállításának lehetősége azonban furcsaan hiányzik.

    De használhatjuk az add_rewrite_rule () a WordPress kódkódjából néhány új beállítás integrálásához. Ebben az esetben kicseréltem /szerző/ val vel /író/ de használhatnád bármit, amit szeretsz. Továbbá másoltam néhány más átirányítást a szerzői oldalakra és az RSS-hírcsatornákra. Ezt a kódblokkot hozzáadhatja a téma funkcióihoz.php.

    add_action ('init', 'add_author_rules'); add_author_rules () add_rewrite_rule ("író / ([^ /] +) /?", "index.php? author_name = $ egyezés [1]", "top"); add_rewrite_rule ("író / ([^ /] +) / oldal /? ([0-9] 1,) /?", "index.php? author_name = $ egyezik [1] & paged = $ egyezés [2] "," top "); add_rewrite_rule ("író / ([^ /] +) / (feed | rdf | rss | rss2 | atom) /?", "index.php? author_name = $ egyezik [1] & feed = $ egyezés [2]", " top "); add_rewrite_rule ("író / ([^ /] +) / feed / (feed | rdf | rss | rss2 | atom) /?", "index.php? author_name = $ egyezik [1] & feed = $ egyezés [2]" , "top");  

    Ez a funkció a $ wp_rewrite változó használata nélkül is elérhető. Egyes fejlesztők ezt a módszert kedvelik, mert egyszerűbb, mint az osztálytulajdonságokkal rendelkező kemény kódolás. Ugyanakkor azt is észrevettem, hogy ez a módszer nem mindig megbízható néhány WordPress telepítésnél. Valójában van egy második lehetőség, hogy ezeket a szabályokat a horgonynak hozzáadhassuk a .htaccess használatával (lásd alább).

    Szerző bázis gener_rewrite_rules használatával

    Ehhez a módszerhez a globális $ wp_rewrite osztályra lesz szükség. Ezután beállítottam egy új változót $ new_rules amely tartalmaz egy asszociatív tömböt. Az alábbi példakód csak az alapszerzői oldalrészre ír át.

    function create_author_rewrite_rules () global $ wp_rewrite; $ new_rules = array ("író / ([^ /] +) /?" => "index.php? szerző_neve =". $ wp_rewrite-> preg_index (1)); $ wp_rewrite-> szabályok = $ new_rules + $ wp_rewrite-> szabályok;  

    De ha több oldalt és RSS-hírcsatornát szeretnénk magukba foglalni, akkor a tömböt fel lehet vágni. Lehetősége van arra, hogy PHP függvényt hozzon létre az asszociatív tömbadatok tolatásához, amelyek kicsit túl bonyolultak lehetnek. Az adatblokkokat vesszővel is megoszthattuk, különálló entitásokként viselkedve a tömbben. Nézze meg újra a frissített kódot, ami a funkciókban található.

    function create_author_rewrite_rules () global $ wp_rewrite; $ new_rules = array ("író / ([^ /] +) /?" => "index.php? szerző_neve =". $ wp_rewrite-> preg_index (1), "író / ([^ /] +) / oldal /? ([0-9] 1,) /? "=>" Index.php? Author_name = ". $ Wp_rewrite-> preg_index (1)." & Paged = ". $ Wp_rewrite-> preg_index (2), "író / ([^ /] +) / (feed | rdf | rss | rss2 | atom) /?" => "index.php? author_name =". $ wp_rewrite-> preg_index (1). "& feed =". $ wp_rewrite-> preg_index (2), "író / ([^ /] +) / feed / (feed | rdf | rss | rss2 | atom) /?" => "index.php? author_name =". $ wp_rewrite- > preg_index (1). "& feed =". $ wp_rewrite-> preg_index (2)); $ wp_rewrite-> szabályok = $ new_rules + $ wp_rewrite-> szabályok;  

    Ne feledje, hogy a fenti módszerek egyike sem fog működni, amíg az eredeti átírási szabályokat ki nem ürítette. Ezt bármikor meg kell tennie, amikor módosítja ezeket a funkciókat, de azután új szabályai végtelenek maradnak.

    Az átírási szabályok öblítése

    Ha az URL-átírási kódot frissíti, a módosítások nem kerülnek azonnal alkalmazásra. El kell öblítenie a .htaccess átírási szabályokat, így az új kód hozzáadásra kerül. Mindazonáltal az init minden lapon rendkívül pazarló, mivel az adatbázisba írja, és keményen frissíti a .htaccess fájlt.

    A jobb módszer az, hogy hozzáférjen a rendszeres oldalakhoz az admin panelen, és mentse újra a módosításokat. Ez mindig egy flush_rewrite_rules-et hív, így soha nem kell aggódnia a felhasználóknál, akik a betöltési problémákat tapasztalják. És csak egy időbe telik, hogy újra mentse az oldalt és frissítse a rendszer összes szabályát. De ha ez nem működik, megpróbálhat hívni $ Wp_rewrite-> flush_rules ();

    A nem WP szabályok használata

    Benne $ wp_rewrite osztályunkban több tucat tulajdonsággal rendelkezünk. Az egyik legfontosabb lehetőség $ Wp_rewrite-> non_wp_rules amely összegyűjti az átirányítások tömbjét, amelyek nem érik el az index.php fájlt.

    Ez a leggyakrabban a WordPress bővítmény fejlesztésénél használatos. Megadhat egy adott egyéni URL-t (például / Naptár / június-2012 /) a webhelyének hátterébe (/wp-content/plugins/calendarplug/myscript.php). Természetesen a pluginok kivételével az egyéni átírási szabályok asszociatív tömbje további felhasználási lehetőségeket tartalmaz. Kiváló példát nyújtottam az alábbi kontextusban.

    A témafájlok maszkolása

    Ez egy gyakori javaslat, amit gyakran látok a WordPress vitafórumokon. Ideális esetben szeretnénk hivatkozni néhány fájlra / Wp-content / themes / mytheme / egy elegánsabb URL-címmel rendelkező mappa. Figyeljük meg, hogy ez megköveteli a WordPress másolatát, hogy megváltoztassa a könyvtárszerkezetet.

    A WordPress belső átírási rendszere mindig egy útválasztási fájl felé tolja el a tartalmat. Az alapértelmezett esetben index.php-t használunk minden további lekérdezési karakterlánc adattal együtt. De a szabványos sablonkönyvtár elrejtéséhez (/ Wp-content / themes / mytheme / *) sok különböző fájlt kell megjelenítenünk.

    add_action ('create_rewrite_rules', 'themes_dir_add_rewrites'); function themes_dir_add_rewrites () $ theme_name = next (felrobban ('/ themes /', get_stylesheet_directory ())); globális $ wp_rewrite; $ new_non_wp_rules = array ('css /(.*)' => 'wp-content / themes /'. $ theme_name. '/ css / $ 1', 'js /(.*)' => 'wp-content / themes / '. $ theme_name.' / js / $ 1 ',' images / wordpress-urls-rewrite /(.*) '=>' wp-content / themes / '. $ theme_name.' / images / wordpress-urls-rewrite / $ 1 ',); $ wp_rewrite-> non_wp_rules + = $ new_non_wp_rules;  

    Új funkciót írtam themes_dir_add_rewrites () a hosszabb URL-ek összes fő tartalmának húzásához, és átirányításukhoz a backendben. Figyeljük meg, hogy ezt a más, a $ wp_rewrite osztály nevű titokzatos tulajdonságát használjuk non_wp_rules. A dokumentumok szerint ezek olyan szabályok, amelyek nem közvetlenül a WP index.php fájljához kapcsolódnak, és a kiszolgáló végén fognak kezelni.

    Az ilyen nem WP szabályokra éppen olyan nagy, hogy a régebbi URL-módszert még mindig könnyen kezelheti. Nincs semmi, ami megakadályozza, hogy összekapcsolódjon:

    /wp-content/themes/mytheme/images/wordpress-urls-rewrite/logo.jpg.

    De sokkal szebbnek tűnik, ha hivatkozhat:

    /images/wordpress-urls-rewrite/logo.jpg helyette.

    Hasznos eszközök és bővítmények

    Csak néhány eszköz áll rendelkezésre, ha a saját szép URL-ek kódolásával ragad meg. A folyamatot nagyon nehéz megragadni, ezért ne habozzon, ha pár hétig küzd. Úgy érzem, a tartalom könnyebb lesz, ha több időt töltesz gyakorolni.

    Azonban, ha el akarod kezdeni, nézd meg ezeket a hasznos átírási eszközöket és bővítményeket. Valószínűleg nem lesz szükségük mindegyikre, de nagyszerű, ha ilyen nagy fejlesztői bázist találunk a WP újraírások körül.

    Monkeyman Rewrite Analyzer

    Amikor először ugrik be az átírási szabályokba, ez a bővítmény kötelező. Valójában nem változtatja meg a webhelyére vonatkozó szabályokat - ez csak lehetővé teszi a kódok tesztelését, és megnézheti, hogy melyik átirányítások melyik oldalra kerülnek. Még egyéni lekérdezési változók tesztelésére is alkalmas lesz minden egyedi bejegyzés típushoz.

    AskApache RewriteRules Viewer

    Ez hasonló a fenti bővítményhez, kivéve, ha nem teszi lehetővé saját szabályainak tesztelését. Ehelyett ez a bővítmény megjeleníti az összes webhely alapértelmezett WP szabályát, és hol irányítja át őket. Ez magában foglalja az összes főbb tulajdonságát $ wp_rewrite például a permalink beállításai és az oldal / kategória / címkék alapjai.

    WP htaccess Control

    Itt van egy másik szabályrendszer az új oldalak átirányításához. A bővítménynek saját adminisztrációs panelje van, ahol szerkesztheti azokat a változókat, mint a szerzői bázis, az oldalalapok, és még a saját egyedi .htaccess-szabályokat is hozzáadhatja.

    Ez a módszer különbözik a saját épületeitől a wp_rewrite használatával. Azonban lehet, hogy könnyebb lesz a technikusok számára, akik valóban ismerik a webszervereket, és jobban érzik magukat, ha közvetlenül írnak be .htaccess-be.

    Szabálymérő átírása

    Ez valójában nem egy WordPress plugin, de biztosan egy hasznos eszköz a fájl tárolására. Átírhatja az átírási szabályokat, és tesztelheti azokat a webhelyére anélkül, hogy a .htaccess-fájlt szerkesztené. Ez a tökéletes módszer a szintaxisból származó hibák eltávolítására, mielőtt elindítaná az interneten.

    DW ReWrite

    A DW Rewrite egy nagyon egyszerű plugin, amely 3 egyedi szép URL-címet hoz létre a telepítés után. Alapértelmezés szerint megváltoztatja az admin, bejelentkezési és regisztrációs linkeket / admin, /Belépés, és /Regisztráció illetőleg.

    Ez nagyszerű lehet, ha egy olyan blogra van szüksége, amely több szerzőt tartalmaz. Ez kifejezetten elrejti a zavarba ejtő WordPress regisztrációs linket (/wp-login.php?action=register).

    Következtetés

    Remélem, hogy ez a bemutató néhány példát adhat arra, hogy a WordPress újraírásait gondolkodhasson. A CMS nagyon népszerű, és a fejlesztők naponta új funkciókat készítenek. A saját URL-ek testreszabása egy ilyen hatalmas felhasználói alapú funkcionalitás. Az alapértelmezett opciókhoz képest saját egyedi jelenlétét és márkajelzését adja webhelyének.

    Ha problémái vannak az átírási szabályokkal, soha nem lehet nehezen visszavonni a károkat. A funkciókód egyszerű törlésével és a .htaccess szabályainak kipirításával úgy tűnik, mintha semmi sem változott. Ügyeljen arra, hogy olvassa el a témában megtalálható egyéb hasonló cikkeket. És ha bármilyen kérdése vagy észrevétele van, akkor ossza meg velünk velünk a hozzászólás utáni területen.