Kotisivu » WordPress » URL-osoitteiden uudelleenkirjoittaminen WordPress-vinkissä ja laajennuksissa

    URL-osoitteiden uudelleenkirjoittaminen WordPress-vinkissä ja laajennuksissa

    WordPressin uusimmat päivitykset ovat antaneet kehittäjille mahdollisuuden mukauttaa henkilökohtaisen verkkosivustonsa nopeasti. On helppo päivittää teeman alueita, korvata widgetit sivupalkissa ja jopa kirjoittaa omia mukautettuja PHP-kooditoimintoja. Laajuus on valtava - ja yksi suosioalue on aika URL-osoitteiden uudelleenkirjoittaminen.

    Voit käyttää muutamia menetelmiä, joiden avulla voit päivittää oletusarvoisen WordPress-uudelleenkirjoitusjärjestelmän. Tässä oppaassa jaan muutamia esimerkkejä ja osoitan, kuinka yksinkertainen prosessi voi olla. Tarvitset jonkin verran PHP: n ymmärrystä seurataksesi mitä tapahtuu koodissa, mutta se on niin helppoa kopioida ja liittää omaan malliin, eikä käytännössä ole mitään työtä.

    Ymmärtäminen WP_Rewrite

    Jos olet yleisesti tuttu mod_rewrite Apache-palvelimilla, voit noutaa WordPress-uudelleenkirjoituksen syntaksin. Niiden järjestelmä on edelleen rakennettu .htaccess tiedosto, mutta kaikki säännöt koodataan PHP: ssä. Tämä tekee prosessista hieman helpommaksi, koska meillä on enemmän omien URL-osoitteiden kirjoittamista.

    Suosittelen, että $ wp_rewrite luokka -sivun ohitetaan, koska sillä on tonnia tietoa aiheesta. On olemassa myös pieniä esimerkkejä, joiden avulla voimme tehdä kaiken helpommaksi ymmärtää. Suurin osa koodista voidaan kirjoittaa suoraan teemaasi functions.php tiedosto. Aloitetaan katsomalla WordPressissa jo olleet uudelleenkirjoitukset.

    $ Wp_rewrite-> -sääntöjen sisältö

    Julistamalla $ wp_rewrite luokassa globaalina meillä on pääsy kaikkiin sisäisiin tietoihin. Kun siirryt lisäämään omia sääntöjäsi, nämä lisätään joukkoon, jossa on nimi $ Wp_rewrite-> sääntöjä. On tärkeää muistaa tämä muuttuja, koska sinun on todennäköisesti viitattava tietoihin monta kertaa kehityksen aikana.

    säännöt); ?>

    Lisäsin tämän koodilohkon teemani page.php tiedosto. Se tuottaa suuren määrän tietoa, joka näyttää suurelta sotkulta. Mutta jos sinä Katso lähde sivulla on todella helppo nähdä, mitkä uudelleenkirjoitussäännöt vastaavat sitä tiedostonimeä. Tarkastellaan esimerkiksi luokkien uudelleenkirjoittamista koskevia sääntöjä:

    [kategoria /(.+?)/?$] => index.php? category_name = $ vastaa [1] 

    Suluissa oleva vasemmalla puolella oleva bitti on Apache RewriteRule, jota etsimme. Alusta alkaen /kategoria/ sen jälkeen merkkijono. Jos tämä on sovitettu, palvelin tietää viittauksen index.php? CATEGORY_NAME = vaihtamalla muuttujan loppuun.

    Mukautettujen Permalinks-asetusten määrittäminen

    Pelkästään $ wp_rewrite -luokassa on niin paljon sisältöä. Voidaan viitata moniin muihin ominaisuuksiin, kuten $ Wp_rewrite-> category_base tai $ Wp_rewrite-> author_base näiden sivujen URL-osoitteiden oletusrakenteiden vetämiseksi. WP: n oletusasetusten vetämisen lisäksi voimme myös rakentaa omat säännöt.

    Tekijäpohjan uudelleenrakentaminen

    Kun siirryt Permalinks-asetukset -sivulle, voit valita luokka- ja tunnisteiden pohjan. Tekijäpohjan palauttaminen on kuitenkin kummallista.

    Mutta voimme käyttää add_rewrite_rule () WordPressin koodikoodista integroida joitakin uusia asetuksia. Tässä tapauksessa olen vaihtanut / Kirjailija / kanssa /kirjailija/ mutta voit käyttää mitä tahansa pohjaa haluat. Lisäksi olen kopioinut joitakin muita uudelleenohjauksia kirjoitussivuille ja RSS-syötteille. Voit lisätä tämän koodilohkon teemasi funktioihin .php.

    add_action ('init', 'add_author_rules'); toiminto add_author_rules () add_rewrite_rule ("writer / ([^ /] +) /?", "index.php? author_name = $ vastaa [1]", "top"); add_rewrite_rule ("writer / ([^ /] +) / page /? ([0-9] 1,) /?", "index.php? author_name = $ vastaa [1] & paged = $ ottelut [2] "," top "); add_rewrite_rule ("kirjailija / ([^ /] +) / (syöttö | rdf | rss | rss2 | atom) /?", "index.php? author_name = $ vastaa [1] & feed = $ vastaa [2]", " top "); add_rewrite_rule ("kirjoittaja / ([^ /] +) / feed / (syöttö | rdf | rss | rss2 | atom) /?", "index.php? author_name = $ vastaa [1] & feed = $ vastaa [2]" , "top");  

    Tätä toimintoa voi käyttää jopa ilman $ wp_rewrite-muuttujaa. Jotkut kehittäjät pitävät tätä menetelmää, koska se on yksinkertaisempi kuin kovakoodaus luokan ominaisuuksien kanssa. Olen kuitenkin myös huomannut, että tämä menetelmä ei ole aina luotettava joillekin WordPress-laitteille. On todella toinen vaihtoehto lisätä nämä säännöt koukkuun sen jälkeen, kun .htaccess-laite on huuhdeltu (katso alla).

    Kirjoittaja Base käyttämällä create_rewrite_rules

    Tämän menetelmän kirjoittaminen edellyttää jälleen globaalia $ wp_rewrite -luokkaa. Olen sitten määrittänyt uuden muuttujan $ new_rules joka sisältää assosiatiivisen joukon dataa. Alla olevassa esimerkkikoodissani kirjoitetaan vain kirjoittajan perussivun osio.

    toiminto create_author_rewrite_rules () global $ wp_rewrite; $ new_rules = array ("writer / ([^ /] +) /?" => "index.php? author_name =". $ wp_rewrite-> preg_index (1)); $ wp_rewrite-> säännöt = $ new_rules + $ wp_rewrite-> säännöt;  

    Mutta jos haluamme sisällyttää useita sivuja ja RSS-syötteitä, voimme lisätä kokoelman. Sinulla on mahdollisuus luoda PHP-toiminto, jolla työnnetään assosiatiivisia taulukon tietoja, jotka voivat olla hieman liian monimutkaisia. Voimme myös jakaa tietolohkot pilkuilla, käyttäytymällä erillisinä kokonaisuuksina ryhmässä. Tutustu päivitettyyn koodiin uudestaan ​​funktio.php-teematiedostossa.

    toiminto create_author_rewrite_rules () global $ wp_rewrite; $ new_rules = array ("writer / ([^ /] +) /?" => "index.php? author_name =". $ wp_rewrite-> preg_index (1), "kirjailija / ([^ /] +) / sivu /? ([0-9] 1,) /? "=>" Index.php? Author_name = ". $ Wp_rewrite-> preg_index (1)." & Paged = ". $ Wp_rewrite-> preg_index (2), "kirjoittaja / ([^ /] +) / (syöttö | rdf | rss | rss2 | atom) /?" => "index.php? author_name =". $ wp_rewrite-> preg_index (1). "& feed =". $ wp_rewrite-> preg_index (2), "kirjailija / ([^ /] +) / syötteen / (syötteen | rdf | rss | rss2 | atom) /?" => "index.php? author_name =". $ wp_rewrite- > preg_index (1). "& feed =". $ wp_rewrite-> preg_index (2)); $ wp_rewrite-> säännöt = $ new_rules + $ wp_rewrite-> säännöt;  

    Muista vain, että kumpikaan näistä menetelmistä ei toimi ennen kuin olet huuhtonut alkuperäiset uudelleenkirjoitussäännöt. Sinun täytyy tehdä tämä aina, kun teet muutoksia näihin toimintoihin, mutta sen jälkeen uudet säännöt pysyvät loputtomina.

    Uudelleenkirjoitussääntöjen huuhtelu

    Aina kun teet päivityksen URL-osoitteen uudelleenkoodikoodiin, muutoksia ei sovelleta välittömästi. Sinun täytyy huuhdella .htaccess-uudelleenkirjoitussäännöt, jotta uusi koodi lisätään. Kuitenkin tämän suorittaminen jokaisella sivulla init on äärimmäisen tuhlaavaa, koska se kirjoittaa tietokantaan ja päivittää .htaccess-tiedostoa kovasti..

    Parempi tapa on käyttää permalinks-sivua admin-paneelissa ja tallentaa muutokset uudelleen. Tämä vaatii aina flush_rewrite_rules -ohjelmaa, joten sinun ei tarvitse koskaan huolehtia käyttäjistä, jotka kärsivät latausongelmista. Sivun tallentaminen ja järjestelmän kaikkien sääntöjen päivittäminen kestää vain kerran. Mutta jos tämä ei toimi, voit yrittää soittaa $ Wp_rewrite-> flush_rules ();

    Käyttämällä muita kuin WP-sääntöjä

    Sisällä $ wp_rewrite luokka meillä on pääsy kymmeniin ominaisuuksiin. Yksi tärkeimmistä vaihtoehdoista on $ Wp_rewrite-> non_wp_rules joka kerää joukon uudelleenohjauksia, jotka eivät osu index.php-tiedostoon.

    Tätä käytetään useimmiten WordPress-laajennuksen kehittämisessä. Voit työntää tiettyä mukautettua URL-tyyppiä (kuten / Kalenteri / kesä-2012 /) verkkosivustosi taustajärjestelmään (/wp-content/plugins/calendarplug/myscript.php). Mutta tietysti on olemassa muitakin käyttötarkoituksia muille mukautetuille muokkaussäännöille kuin plugins. Olen antanut erinomaisen esimerkin seuraavassa yhteydessä.

    Peitä teematiedostot

    Tämä on yleinen ehdotus, jota näen usein WordPress-keskustelualueilla. Ihannetapauksessa haluaisimme viitata joihinkin tiedostoihin / Wp-content / themes / mytheme / kansio, jossa on tyylikkämpi URL-osoite. Huomaa, että tämä edellyttää eri joukkoa WordPress-uudelleenkirjoituksia hakemistorakenteen muuttamiseksi.

    WordPressin sisäinen uudelleenkirjoitusjärjestelmä työntää sisältöä aina kohti yhtä reititystiedostoa. Oletustapauksessa käytämme index.php: tä yhdessä minkä tahansa ylimääräisen kyselymerkkidatan kanssa. Mutta piilottamalla vakiomallipohjahakemisto (/ Wp-content / themes / mytheme / *) meidän on näytettävä monia erilaisia ​​tiedostoja.

    add_action ('create_rewrite_rules', 'themes_dir_add_rewrites'); toiminto themes_dir_add_rewrites () $ theme_name = next (räjähtää ('/ themes /', get_stylesheet_directory ())); globaali $ 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;  

    Olen kirjoittanut uuden toiminnon themes_dir_add_rewrites () vetää kaikki tärkeimmät sisällöt näistä pidemmistä URL-osoitteista ja ohjaa ne takaisin taustalle. Huomaa, että käytämme tätä muuta $ wp_rewrite -luokan salaperäistä ominaisuutta non_wp_rules. Asiakirjojen mukaan nämä ovat sääntöjä, jotka eivät suoraan WP: n index.php-tiedostoon ja käsitellään palvelimen lopussa.

    Mikä on niin hienoa näistä ei-WP-säännöistä, on, että voit silti hallita vanhempaa URL-menetelmää melko helposti. Mikään ei estä sinua linkittämästä:

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

    Mutta se näyttää paljon mukavammalta, jos voit viitata:

    /images/wordpress-urls-rewrite/logo.jpg sen sijaan.

    Hyödyllisiä työkaluja ja laajennuksia

    On vain muutamia työkaluja, joita voit käyttää, jos olet jumissa omien kaunis URL-osoitteidenne koodauksessa. Prosessia on vaikea ymmärtää, joten älä lannistu, jos kamppailet pari viikkoa. Mielestäni sisältö helpottuu, kun käytät enemmän aikaa harjoitellessasi.

    Aloittamiseksi kannattaa kuitenkin tarkistaa joitakin näistä kätevistä uudelleenkirjoitustyökaluista ja laajennuksista. Et todennäköisesti tarvitse niitä kaikkia, mutta on hienoa löytää niin suuri kehittäjäkanta, joka työskentelee WP: n uudelleenkirjoitusten ympärillä.

    Monkeyman Rewrite Analyzer

    Kun hyppäämällä uudelleenkirjoitussääntöihin, tämä plugin on välttämätön. Se ei oikeastaan ​​muuta sivustosi sääntöjä - se vain sallii sinun testata koodin ja nähdä, mitkä uudelleenohjaukset menevät mihin sivuihin. Se toimii jopa testattaessa mukautettuja kyselymuuttujia minkä tahansa mukautetun postityypin osalta.

    AskApache RewriteRules Viewer

    Tämä on samanlainen kuin yllä oleva laajennus, mutta se ei anna sinun testata omia sääntöjäsi. Sen sijaan tämä laajennus näyttää kaikki sivustosi oletusarvoiset WP-säännöt ja ne, joihin ne ohjaavat. Tämä sisältää kaikki tärkeimmät ominaisuudet $ wp_rewrite kuten permalink-asetukset ja sivun / luokka / tunnisteet.

    WP htaccess -ohjaus

    Tässä on erilaiset säännöt uusien sivujen uudelleenohjausten tekemiseksi. Lisäosassa on oma hallintapaneeli, jossa voit muokata sellaisia ​​muuttujia, kuten tekijän pohja, sivupohjat ja jopa liittää omat mukautetut .htaccess-säännöt.

    Tämä menetelmä on erilainen kuin omien rakentaminen käyttämällä wp_rewrite. Teknikoille, jotka todella tuntevat verkkopalvelimet ja tuntevat olonsa mukavammaksi kirjoittaa suoraan .htaccessiin, voi kuitenkin olla helpompaa.

    Kirjoita uudelleen säännön testaaja

    Tämä ei oikeastaan ​​ole WordPress-laajennus, mutta se on varmasti yksi kätevä työkalu tiedostojen säilyttämiseen. Voit kopioida uudelleenkirjoitussääntöjä ja testata niitä sivustoosi ilman, että muokkaat .htaccess-tiedostoa. Tämä on täydellinen tapa poistaa vikoja syntaksista, ennen kuin käynnistät verkossa.

    DW ReWrite

    DW Rewrite on erittäin yksinkertainen plugin, joka luo 3 ainutlaatuista kauniita URL-osoitetta heti asennuksen jälkeen. Oletuksena se muuttaa järjestelmänvalvojan, kirjautumisen ja rekisteröinnin linkit / admin, /Kirjaudu sisään, ja / Rekisteröidy vastaavasti.

    Tämä voi olla hyvä, jos tarvitset nopean korjauksen blogiin, jossa on useita tekijöitä. Se piilottaa nimenomaan kiusallisen WordPress-rekisteröintilinkin (/wp-login.php?action=register).

    johtopäätös

    Toivon, että tämä opetusohjelma voi antaa esimerkkejä, joiden avulla voit ajatella WordPressin uudelleenkirjoituksia. CMS on erittäin suosittu ja kehittäjät tuottavat yhä uusia ominaisuuksia joka päivä. Omien URL-osoitteiden mukauttaminen on niin suuri käyttäjäpohjainen toiminnallisuus. Se antaa sivustollesi oman ainutlaatuisen läsnäolonsa ja brändinsä oletusasetuksiin verrattuna.

    Jos sinulla on ongelmia uudelleenkirjoitussääntöjen kanssa, vaurioita ei saa koskaan kumota. Yksinkertaisesti poistamalla toimintokoodi ja huuhtelemalla .htaccess-säännöt se ei näyttäisi olevan muuttunut. Muista tarkistaa joitakin muita vastaavia artikkeleita, joita löydät aiheesta. Ja jos sinulla on kysyttävää tai kommentteja, voit jakaa ne meille keskustelualueella.