Pagrindinis » WordPress » URL perrašymas „WordPress“ patarimuose ir papildiniuose

    URL perrašymas „WordPress“ patarimuose ir papildiniuose

    Naujausi „WordPress“ atnaujinimai leido kūrėjams greitai pritaikyti savo asmeninę svetainę. Tai paprasta atnaujinti savo temos sritis, pakeisti valdiklius šoninėje juostoje ir net parašyti savo pasirinktines PHP kodo funkcijas. Plėtra yra didžiulė - ir viena populiarumo sritis - perrašyti gana URL permalinkus.

    Yra keletas būdų, kuriuos galite naudoti norint atnaujinti numatytąją „WordPress“ perrašymo sistemą. Šioje instrukcijoje pasidalinsiu keliais pavyzdžiais ir parodysiu, kaip paprastas procesas gali būti. Jums reikės šiek tiek supratimo apie PHP, kad galėtumėte sekti, kas vyksta kode, bet tai taip paprasta kopijuoti ir įklijuoti į savo šabloną..

    Suprasti WP_Rewrite

    Jei visai esate susipažinę su „Mod_rewrite“ „Apache“ serveriuose, tada pasieksite „WordPress“ perrašymo sintaksę. Jų sistema vis dar yra pastatyta ant .htaccess failą, bet visos taisyklės yra koduojamos PHP. Tai iš tikrųjų palengvina procesą, nes turime daugiau galimybių kontroliuoti savo URL.

    Aš rekomenduoju nugriauti $ wp_rewrite klasės puslapį, nes jis turi daug informacijos apie šią temą. Yra net mažų pavyzdžių, kuriais galime remtis, kad viską lengviau suprasti. Daugumą kodo galima parašyti tiesiai į jūsų temą funkcijos.php failą. Pradėkime ieškodami numatytų perrašų, jau įtrauktų į „WordPress“.

    $ Wp_rewrite-> taisyklių turinys

    Paskelbdamas $ wp_rewrite klasė kaip pasaulinė, turime prieigą prie visų vidinių duomenų. Kai eisite pridėti savo taisykles, tai yra įtraukta į masyvą su pavadinimu $ wp_rewrite-> taisyklės. Svarbu prisiminti šį kintamąjį, nes tikėtina, kad kūrimo metu jums reikės daug kartų nurodyti duomenis.

    taisyklės); ?>

    Aš pridėjau šį kodo bloką į savo temą page.php failą. Jis išleis daug duomenų, kurie atrodo kaip didelis netvarka. Bet jei jūs Peržiūrėti šaltinį puslapyje yra iš tikrųjų lengva pamatyti, kurios perrašymo taisyklės yra suderintos su kokiu failo pavadinimu. Pvz., Peržiūrėkime kategorijų perrašymo taisykles:

    [kategorija /(.+?)/?$] => index.php? category_name = $ atitikmenys [1] 

    Skliausteliuose kairėje pusėje esanti bitė yra mūsų Apache RewriteRule. Pradedant nuo sekcijos /Kategorija/ seka bet kokia simbolių eilutė. Jei tai suderinama, tuomet serveris žino nuorodą index.php? category_name = pakeitus kintamąjį.

    Pasirinktinių leidimų nustatymas

    Vien tik $ wp_rewrite klasėje yra tiek daug turinio. Galima nurodyti daug kitų savybių, pvz $ wp_rewrite-> category_base arba $ wp_rewrite-> author_base norint ištraukti numatytųjų šių puslapių URL struktūras. Tačiau, išskyrus WP numatytuosius nustatymus, mes taip pat galime sukurti savo taisykles.

    Autorių bazės atstatymas

    Kai įvedate „Permalinks“ nustatymų puslapį, galite nustatyti kategorijų ir žymų bazių nustatymą. Tačiau galimybė iš naujo nustatyti autoriaus bazę yra keista.

    Bet mes galime naudoti add_rewrite_rule () iš „WordPress“ kodo įterpti kai kuriuos naujus nustatymus. Šiuo atveju aš pakeitiau / autorius / su / rašytojas / bet jūs galėtumėte naudoti bet kokią bazę, kurią norite. Be to, nukopijuoju kai kuriuos kitus redagavimus, skirtus autorių puslapiams ir RSS. Šį kodo bloką galite įtraukti į savo temos funkcijas.php.

    add_action ('init', 'add_author_rules'); funkcija add_author_rules () add_rewrite_rule ("rašytojas / ([^ /] +) /?", "index.php? autoriaus vardas = $ atitikmenys [1]", "viršuje"); add_rewrite_rule ("rašytojas / ([^ /] +) / puslapis /? ([0-9] 1,) /?", "index.php? author_name = $ atitinka [1] & paged = $ atitikmenis [2] "," viršuje "); add_rewrite_rule ("rašytojas / ([^ /] +) / (pašaras | rdf | rss | rss2 | atomas) /?", "index.php? autoriaus_pavadinimas = $ atitinka [1] & feed = $ atitikmenis [2]", " viršuje "); add_rewrite_rule ("rašytojas / ([^ /] +) / feed / (feed | rdf | rss | rss2 | atomas) /?", "index.php? autor_name = $ atitikmenys [1] & feed = $ atitikmenys [2]" , "viršuje");  

    Šią funkciją galima pasiekti net ir nenaudojant $ wp_rewrite kintamojo. Kai kurie kūrėjai mėgsta šį metodą, nes jis yra paprastesnis nei kietojo kodavimo su klasės savybėmis. Tačiau aš taip pat pastebėjau, kad šis metodas ne visada patikimas kai kuriems „WordPress“ įrenginiams. Iš tikrųjų yra antroji galimybė pridėti šias taisykles ant kablio po to, kai nuvalysite .htaccess (žr. Žemiau).

    Autoriaus bazė, naudojant „create_rewrite_rules“

    Rašydami šį metodą vėl reikės pasaulinės $ wp_rewrite klasės. Tada nustatiau naują pavadinimą $ new_rules kuriame yra asociatyvus duomenų rinkinys. Mano žemiau pateiktas pavyzdinis kodas tiesiog perrašo pagrindinio autoriaus puslapio skiltį.

    funkcija create_author_rewrite_rules () global $ wp_rewrite; $ new_rules = array ("rašytojas / ([^ /] +) /?" => "index.php? autoriaus vardas =". $ wp_rewrite-> preg_index (1)); $ wp_rewrite-> taisyklės = $ new_rules + $ wp_rewrite-> taisyklės;  

    Bet jei norime įtraukti kelis puslapius ir RSS kanalus, mes galime padidinti masyvą. Jūs galite sukurti PHP funkciją, kad būtų galima perduoti asociatyvius masyvo duomenis, kurie gali būti šiek tiek pernelyg sudėtingi. Taip pat galėtume padalinti duomenų blokus kableliais, elgdamiesi kaip atskiri elementai masyve. Patikrinkite mano atnaujintą kodą dar kartą, įrašydami funkcijų.php temos failą.

    funkcija create_author_rewrite_rules () global $ wp_rewrite; $ new_rules = array ("rašytojas / ([^ /] +) /?" => "index.php? autoriaus vardas =". $ wp_rewrite-> preg_index (1), "rašytojas / ([^ /] +) / puslapis /? ([0-9] 1,) /? "=>" Index.php? Author_name = ". $ Wp_rewrite-> preg_index (1)." & Paged = ". $ Wp_rewrite-> preg_index (2), "rašytojas / ([^ /] +) / (pašaras | rdf | rss | rss2 | atomas) /?" => "index.php? autor_name =". $ wp_rewrite-> preg_index (1). "& feed =". $ wp_rewrite-> preg_index (2), "rašytojas / ([^ /] +) / feed / (feed | rdf | rss | rss2 | atomas) /?" => "index.php? autoriaus_pavadinimas =". > preg_index (1). "& feed =". $ wp_rewrite-> preg_index (2)); $ wp_rewrite-> taisyklės = $ new_rules + $ wp_rewrite-> taisyklės;  

    Nepamirškite, kad nė vienas iš šių metodų neveiks tol, kol nuvalysite originalias perrašymo taisykles. Turėsite tai padaryti bet kuriuo metu, kai atliksite šių funkcijų pakeitimus, tačiau vėliau naujosios taisyklės bus laikomos neribotą laiką.

    Perrašyti perrašymo taisykles

    Atnaujinus URL perrašymo kodą, pakeitimai nebus taikomi nedelsiant. Jūs turite praplauti .htaccess perrašymo taisykles, kad būtų pridėtas naujasis kodas. Tačiau atliekant šį darbą kiekviename puslapyje „init“ yra labai brangu, nes jis rašo į duomenų bazę ir sunkiai atnaujina .htaccess failą.

    Geresnis būdas yra pasiekti savo permalinks puslapį administratoriaus skydelyje ir iš naujo išsaugoti pakeitimus. Tai visada vadina „flush_rewrite_rules“, todėl jums nereikės nerimauti dėl naudotojų, kurie patiria pakrovimo problemų. Ir tai užtruks tik vieną kartą, kad iš naujo išsaugotumėte puslapį ir atnaujintumėte visas jūsų sistemos taisykles. Bet jei tai neveikia, galite pabandyti skambinti $ wp_rewrite-> flush_rules ();

    Naudojant ne WP taisykles

    Viduje $ wp_rewrite klasė turi prieigą prie dešimčių savybių. Vienas iš svarbesnių galimybių yra $ wp_rewrite-> non_wp_rules kuris renka peradresavimų masyvą, kuris nepavyksta nukreipti į index.php failą.

    Tai iš tikrųjų dažniausiai naudojama WordPress įskiepių kūrimo procese. Galite stumti konkretų priskirtą URL tipą (pvz., / kalendorius / 2012 m. birželio mėn. /) į savo svetainės „backend“/wp-content/plugins/calendarplug/myscript.php). Tačiau, žinoma, šiam asociatyviam pasirinktinių perrašymo taisyklių, išskyrus įskiepius, masyvui yra ir kitų naudojimo būdų. Pateikiau puikų pavyzdį žemiau pateiktame kontekste.

    Užfiksuoti teminius failus

    Tai yra bendras pasiūlymas, kurį matau dažnai „WordPress“ diskusijų lentose. Idealiu atveju norėtume nurodyti kai kuriuos failus viduje / wp-content / temos / mytheme / aplanką su elegantiškesniu URL. Atkreipkite dėmesį, kad tam reikės kitokio WordPress perrašymo rinkinio, kad pakeistumėte katalogų struktūrą.

    „WordPress“ vidinė perrašymo sistema visada stumia turinį į vieną maršruto failą. Numatytu atveju mes naudojame index.php kartu su papildomais užklausų eilutės duomenimis. Tačiau, norėdami paslėpti standartinį šablonų katalogą (/ wp-content / temos / mytheme / *) mums reikės rodyti daug skirtingų failų.

    add_action ('generated_rewrite_rules', 'themes_dir_add_rewrites'); funkcija themes_dir_add_rewrites () $ theme_name = next (sprogti ('/ themes /', get_stylesheet_directory ())); pasaulio $ 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;  

    Aš parašiau naują funkciją themes_dir_add_rewrites () ištraukti visą pagrindinį turinį iš šių ilgesnių URL ir nukreipti juos atgal. Atkreipkite dėmesį, kad mes naudojame šį kitą paslaptingą $ wp_rewrite klasės pavadinimą non_wp_rules. Remiantis dokumentais, tai yra taisyklės, kurios nėra tiesiogiai nukreiptos į WP indekso failą ir tvarkomos serverio pabaigoje.

    Su šiomis ne WP taisyklėmis taip gerai, kad jūs vis dar galite lengvai valdyti senesnį URL metodą. Niekas neleidžia jums susieti su:

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

    Tačiau atrodo, kad yra daug gražiau, jei galite nurodyti:

    /images/wordpress-urls-rewrite/logo.jpg vietoj to.

    Naudingi įrankiai ir papildiniai

    Yra tik keletas įrankių, kuriuos galite panaudoti, jei esate užstrigę savo pačių gražių URL kodavimo. Procesas yra labai sunku suvokti, todėl nedvejokite, jei už kelių savaičių sunku. Manau, kad turinys bus lengviau, kai praleidžiate daugiau laiko praktikuojant.

    Bet norėdami pradėti, patikrinkite kai kuriuos iš šių patogių perrašymo įrankių ir papildinių. Tikriausiai jums nereikės jų visų, bet puikiai tinka rasti tokią didelę kūrėjo bazę, kuri dirba aplink WP perrašus.

    Monkeyman Rewrite Analyzer

    Pirmą kartą šokant į perrašymo taisykles, šis įskiepis yra privalomas. Jis iš tikrųjų nekeičia jokių jūsų svetainės taisyklių - tai tik leidžia išbandyti kodą ir pamatyti, kurie nukreipimai nukreipiami į tai, kurie puslapiai. Jis netgi bandys testuoti pasirinktinius užklausos kintamuosius bet kokiems priskirtų pranešimų tipams.

    AskApache RewriteRules Viewer

    Tai panaši į anksčiau pateiktą papildinį, išskyrus tai, kad jums neleidžiama išbandyti savo taisyklių. Vietoj to šis įskiepis parodys visas jūsų svetainės numatytas WP taisykles ir ten, kur jos nukreipiamos. Tai apims visas pagrindines $ wp_rewrite pvz., jūsų permalinko nustatymai ir puslapio / kategorijos / žymių bazės.

    WP htaccess Control

    Čia jūs turite skirtingų taisyklių rinkinį naujiems puslapiams nukreipti. Įskiepis turi savo administravimo skydelį, kuriame galite redaguoti kintamuosius, pvz., Autoriaus bazę, puslapio bazę ir net pridėti savo pasirinktines .htaccess taisykles.

    Šis metodas yra skirtingas, palyginti su pastato savo naudojimu wp_rewrite. Tačiau tai gali būti lengviau technikams, kurie tikrai žino interneto serverius ir jaustis patogiau rašyti tiesiai į .htaccess.

    Perrašyti taisyklę testeris

    Tai iš tikrųjų nėra „WordPress“ įskiepis, bet tai tikrai yra vienas iš patogių įrankių, galinčių laikyti failą. Galite kopijuoti perrašymo taisykles ir išbandyti jas savo svetainėje, niekada nekeisdami .htaccess failo. Tai puikus būdas pašalinti klaidas iš sintaksės prieš pradedant gyventi internete.

    DW ReWrite

    DW perrašymas yra labai paprastas įskiepis, kuris iškart po įdiegimo sukuria 3 unikalius gana gražius URL. Pagal nutylėjimą jis pakeis administratoriaus, prisijungimo ir registracijos nuorodas / admin, /Prisijungti, ir /Registruotis atitinkamai.

    Tai gali būti puiku, jei jums reikia greito pataisymo tinklaraščiui, kuriame yra keli autoriai. Tai konkrečiai paslėps siaubingai suformuotą „WordPress“ registracijos nuorodą (/wp-login.php?action=register).

    Išvada

    Tikiuosi, kad ši pamoka gali pateikti keletą pavyzdžių, kad galėtumėte galvoti apie „WordPress“ perrašymą. CMS yra labai populiarus, o kūrėjai kasdien gamina naujas funkcijas. Savo URL pritaikymas yra toks didžiulis vartotojo funkcionalumo elementas. Palyginti su numatytomis parinktimis, tai suteikia jūsų svetainei savo unikalų buvimą ir prekės ženklą.

    Jei kyla problemų su perrašymo taisyklėmis, niekada neturėtų būti sunku panaikinti žalą. Tiesiog ištrindami funkcijų kodą ir nuvalydami .htaccess taisykles, atrodytų, kad niekas nepasikeitė. Būtinai patikrinkite kitus panašius straipsnius, kuriuos galite rasti temoje. Jei turite kokių nors klausimų ar komentarų, galite pasidalinti jais su mumis pokalbių srityje.