Aceasta este partea a doua a unei serii privind WordPress 'Rewrite API. În prima parte am făcut un tur de oprire a principiilor de bază ale WordPress 'Rewrite API. În acest tutorial vom examina setările de rescriere disponibile pentru înregistrarea unui tip de post sau a unei taxonomii. În timp ce tipurile de postări și taxonomiile personalizate (spre deosebire de postările, categoriile și etichetele implicite) nu beneficiază de nicio interfață Setări -> Permalink, configurarea rescrierilor pentru tipurile personalizate este încă destul de simplă. De asemenea, vom folosi metodele introduse în prima parte, deci, dacă nu ați făcut deja, vă recomandăm să citiți WordPress 'Rewrite API Part One: Elementele de bază.
Când înregistrați un tip personalizat, WordPress înregistrează, de asemenea, regulile de rescriere (de fapt, nu chiar, și voi explica de ce în secțiunea "Permastructuri"). Așa cum am menționat în prima parte, aceste reguli vor fi incluse numai după ce regulile de rescriere vor fi "spălate". Temele și plug-in-urile pot forța această "spălare" prin apelare flush_rewrite_rules ()
. Acest lucru trebuie și trebuie făcut numai odată cu activarea și apoi cu dezactivarea (pentru a vă curăța după dvs.).
Evident, înainte de a elimina regulile de rescriere, trebuie să le adăugați. Însă init
cârlig pe care tipuri de posturi ar trebui să fie înregistrate, a fost deja concediat și atunci când a fost, plug-in-ul sau tema nu a fost încă activă și astfel tipurile de posturi și taxonomii nu sunt încă înregistrate. Pentru a înregistra regulile de rescriere care vin împreună cu tipurile de postări și taxonomii, înseamnă că trebuie să le înregistrezi "manual" la activare, înainte de a elimina regulile de rescriere. Deci, acest lucru ar trebui să fie setat dvs.:
funcția wptuts_register_types () // funcția care înregistrează tipul dvs. de post particularizat și taxonomii add_action ('init', 'wptuts_register_types'); funcția wptuts_plugin_activation () // Înregistrați tipurile pentru înregistrarea regulilor de rescriere wptuts_register_types (); // Apoi le-am spălat flush_rewrite_rules (); register_activation_hook (__FILE__, 'wptuts_plugin_activation'); funcția wptuts_plugin_deactivation () flush_rewrite_rules (); register_activation_hook (__FILE__, 'wptuts_plugin_activation');
Temele pot folosi cârligele after_switch_theme
pentru activare și switch_theme
pentru dezactivare.
Când înregistrați un tip de post cu register_post_type
unul dintre argumentele pe care vi le aveți este argumentul de rescriere. Acesta ar trebui să fie un tablou cu următoarele chei:
melc
- un blocaj utilizat pentru a identifica tipul de postare în adrese URL. Postul de slug este atașat la acest lucru pentru permalink post, de exemplu,. www.example.com/cărți/Vrajitorul din Oz
with_front
- adevărat sau fals. Dacă structura permanentă a postării dvs. începe cu o bază constantă, cum ar fi "/ blog" - aceasta poate fi adăugată și în structura permalink a postului dvs. personalizat, prin setarea acesteia la adevărat, de ex. adevărat va da www.example.com/blog/books/
și falsă www.example.com/books/
feed-uri
- adevărat sau fals. Fie că se generează reguli de rescriere a alimentării, de ex. www.example.com/books/feed/rss
și www.example.com/book/rss
. Valoarea implicită este valoarea de has_archive
.pagini
- adevărat sau fals. Fie că se generează o regulă pentru paginarea "destulă" pentru arhiva tip post,. www.example.com/books/page/2
in loc de www.example.com/books?page=2
. Valori implicite la adevărat.ep_mask
- Acesta a fost un argument separat: permalink_epmask
. De la 3.4 se va muta în matricea de rescriere. Valoarea implicită este EP_PERMALINK
.Cheile "feed-uri" și "pagini" se referă numai la pagina de arhivă post-tip (pentru care trebuie să setați has_archive
argument pentru adevărat). Din această matrice de rescriere, WordPress se ocupă de generarea automat a regulilor de rescriere pentru tipurile de postări. Ca exemplu:
$ labels = array ('name' => __ ('Books', 'your-plugins-translation-domain'), // array of labels); $ args = array ('labels' => etichete $, 'has_archive' => true, 'rewrite' => 'pagini' => true)); register_post_type ( 'carte', $ args);
Ar da următoarele reguli de rescriere:
Vrajitorul din Oz
„: www.example.com/books/the-wizard-of-oz
www.example.com/books
(și www.example.com/books/page/2
)www.example.com/books/feed/rss
(și www.example.com/books/rss
) register_taxonomy ()
funcția oferă mai puține opțiuni:
melc
- un blanc pentru a identifica taxonomia de ex. www.example.com/gen literar/istorie
with_front
- Ca mai sus.ierarhic
- adevărat sau fals. Dacă este setat la adevărat și taxonomia este ierarhică, termenul permalink reflectă ierarhia. Implicit la false.ep_mask
- Adăugat în 3.4. Consultați secțiunea Mască EP de mai jos.Primele două opțiuni sunt similare celor de mai sus. Opțiunea ierarhică dă termenului permalinks aceeași structură ca și paginile. De exemplu, lăsați "Istoria" să fie un gen și "Istoria Militară" un sub-gen. Cu setarea ierarhică la fals, "Istoria Militară" va avea un permalink:
www.example.com/genre/military-history
Întrucât, setat la adevărat, va avea:
www.example.com/genre/military/military-history
Înregistrarea unei taxonomii înregistrează automat canalele de taxonomie-termeni:
www.example.com/genre/military-history/feed
Puteți obține linkul feed-permalink la orice termen de taxonomie cu
$ feed_link = get_term_feed_link ($ term_id, $ taxonomie, $ feed)
Implicit, WordPress nu produce "destul de" permalinks pentru arhivele anului, arhiva lună sau zi (și nici arhiva autorului - dar vom lăsa acea pentru moment). In timp ce:
www.example.com/?post_type=book&year=2012&monthnum=05
Corectează o arhivă a tuturor cărților publicate în mai 2012:
www.example.com/books/2012/05
Va da o eroare de 404. Cu toate acestea, putem adăuga pur și simplu reguli suplimentare de rescriere folosind metodele API de rescriere disponibile pe care le-am acoperit în prima parte. O metodă este să adăugați următoarea listă de reguli de rescriere atunci când vă înregistrați tipul de postare:
// Adaugă arhiva de zi (și paginare) add_rewrite_rule ("cărți / ([0-9] 4) / ([0-9] 2) / ([0-9] 2) / pagină /? ([0-9] 1) /?“, 'index.php? post_type = carte & an meciuri = $ [1] & monthnum = $ se potrivește [2] & zi = $ meciuri [3] & paginate meciuri = $ [4] ','top'); add_rewrite_rule ( "cărți / ([0-9] 4) / ([0-9] 2) / ([0-9] 2) /?", 'index.php? post_type = carte & an = meciuri $ [1] & monthnum = $ meciuri [2] & meciuri zi = $ [3]“, 'sus'); // Adăugați arhiva lunilor (și paginare) add_rewrite_rule ("cărți / ([0-9] 4) / ([0-9] 2) / /?",'index.php?post_type=book&year=$matches[1]&monthnum=$matches[2]&paged=$matches[3]','top '); add_rewrite_rule ( "cărți / ([0-9] 4) / ([0-9] 2) /?", "index.php? post_type = carte & an = $ meciuri [1] & monthnum = $ meciuri [2 ]','top'); // Adăugați arhiva anului (și paginarea) add_rewrite_rule ("cărți / ([0-9] 4) / pagină /? (0-9) 1, carte & an = $ meciuri [1] & paginate meciuri = $ [2]“, 'sus'); add_rewrite_rule ( "cărți / ([0-9] 4) /?", 'index.php post_type = carte & an = $ meciuri [1]?', 'sus');
Acest lucru poate deveni ușor dezordonat - mai ales atunci când considerați că ar trebui să adăugați reguli suplimentare dacă doriți ca arhivele dvs. să sprijine URL-uri destul de bune pentru fluxurile lor. Cu toate acestea, cele de mai sus ilustrează un fapt important referitor la adăugarea regulilor personalizate: Ordinea în care sunt adăugate regulile este importantă.
Rețineți că aceste reguli sunt adăugate la matricea de rescriere în ordinea în care apelați add_rewrite_rule
. Atunci când analizați o cerere, WordPress utilizează primul regulă de potrivire. Încercați să schimbați ordinea în care sunt adăugate regulile de arhivă an și lună. Veți găsi asta www.example.com/books/2012/04/
te duce la arhiva 2012. Acest lucru se datorează faptului că acea adresă URL se potrivește cu modelele pentru arhivele din an și luna, dar prima a fost adăugată mai întâi. Nu uitați să adăugați întotdeauna mai întâi regula mai specifică.
Pe de altă parte, dacă adăugați o regulă de rescriere, a cărei regex există deja ca regulă, acea regulă va fi suprascrisă de cea nouă.
Există o modalitate ușoară de a realiza cele de mai sus: add_permastruct
. Această funcție este folosită de WordPress pentru a crea "permastructuri", din care generează reguli de rescriere (cum ar fi cele de mai sus), care gestionează paginarea și feedurile. Când înregistrați un tip de post personalizat, WordPress nu creează automat toate regulile de rescriere. În schimb, acesta înregistrează o permastructură - și numai când regulile sunt generate (adică atunci când acestea sunt spălate), WordPress utilizează acele permastructuri pentru a genera regulile reale de reînregistrare.
Un exemplu de permastructură este cel pe care îl utilizați în Setări -> Permalinks. Acestea acceptă orice tip de codificări "greu codate" sau orice etichete care există în mod prestabilit sau au fost adăugate add_rewrite_tag
, pe care am abordat-o în prima parte. De exemplu, permastructura % An% /% categorie% /% autor%
ar genera următoarele reguli de rescriere:
www.example.com/2012/url-rewriting/stephen
www.example.com/2012/url-rewriting/stephen/page/2
www.example.com/2012/url-rewriting/stephen/feed/rss
www.example.com/2012/url-rewriting/
www.example.com/2012/url-rewriting/page/2
www.example.com/2012/url-rewriting/feed/rss
www.example.com/2012/
www.example.com/2012/page/2
www.example.com/2012/feed/rss
add_permastruct
Funcţie add_permastruct
funcția acceptă patru argumente:
Nume
- Un ghinion unic pentru a vă identifica permastructurastruct
- Permastructura însăși, de ex. '% An% /% categorie% /% autor%
'with_front
- adevărat sau fals. Acesta este același argument ca la înregistrarea tipului de postep_mask
- Consultați secțiunea Mască EP de mai josCâteva avertismente privind utilizarea add_permastruct
trebuie să fie făcute aici. În primul rând, veți dori să vă asigurați că o permastructură personalizată nu contravine regulilor de rescriere WordPress pentru postări și pagini. Acest lucru se poate face prin premedierea permastructurii personalizate cu ceva greu codificat. De exemplu:
'% /% Monthnum% / zi%%-ceva codificate /% an'
În al doilea rând - regulile sunt adăugate în această ordine - deci dacă etichetele dvs. sunt "prea generice", acestea din urmă nu pot fi aplicate niciodată. De exemplu, structura de mai sus (pe care o puteți încerca pe pagina Setări -> Pagina), funcționează în general bine, cu excepția următoarelor:
www.example.com/2012/page/2
Este interpretat ca pagina de posturi de autor '2', în categoria 'pagina' în 2012. Dacă doriți să utilizați add_permastruct
și să aveți paginarea și să vă alimentați regulile cascade frumos, atunci va trebui să utilizați etichete care nu sunt "generice" (prin care vreau să spun că expresiile regex nu sunt generice). %autor%
și %categorie%
sunt exemple bune ale unei etichete generice, deoarece acestea se vor potrivi de obicei cu orice caracter.
Tag-urile an, lună și zi, pe de altă parte, sunt foarte specifice - se potrivesc doar cu numere pozitive de lungimi patru și două, deci putem folosi add_permastruct
pentru arhiva de date a tipului de postare. Datorită naturii specifice a etichetelor de date, avem nevoie de adăugarea acestor reguli inainte de regula postului de tip post - adăugați imediat următoarele inainte de înregistrarea tipului dvs. de postare:
// Vă rugăm să rețineți că acest lucru va funcționa numai pe WordPress 3.4+ http://core.trac.wordpress.org/ticket/19871 add_rewrite_tag ('% book_cpt%', '(book) s', 'post_type ='); add_permastruct ('book_archive', '% book_cpt% /% anul% /% luna% /% zi%');
În cele de mai sus, eticheta personalizată % Book_cpt%
acționează ca un cuțit greu codificat pentru a diferenția această permastructură de alte reguli (conform primului avertisment). Regulile generate vor fi aplicabile numai dacă % Book_cpt%
se potrivește cu "cărțile" și, în acest caz, partea "carte" este capturată și interpretată ca valoare pentru post_type
. Vă rugăm să rețineți că add_rewrite_tag
acceptă doar al treilea argument de la WordPress 3.4. Cu toate acestea, puteți utiliza următoarele lucruri:
global $ wp_rewrite; $ Wp_rewrite-> add_rewrite_tag ( '%% book_cpt', '(carte) s', 'post_type =');
După configurarea arhivelor cărții, s-ar putea să vă așteptați și la asta
www.example.com/books?year=2012
Ne-ar duce la arhiva de carte 2012, de asemenea. Testarea acesteia, totuși, arată că, în schimb, ne duce la pagina de arhivă post-an:
www.example.com/2012/
WordPress ne-a redirecționat către o pagină diferită datorită unui lucru cunoscut sub numele de canonizare.
De obicei, există multe adrese URL care ar putea indica același conținut pe site-ul dvs. Web. De exemplu:
www.example.com/year/2012 www.example.com/year/2012/page/1 www.example.com/2012////////page1 www.example.com/index.php / 2012 / www.example.com/index.php////2012///page/1
Vă vor duce pe prima pagină a arhivei dvs. din 2012. Din perspectiva SEO, acest lucru nu este grozav - nu putem presupune că motoarele de căutare vor recunoaște aceste adrese URL ca fiind aceeași resursă și că aceste adrese URL ar putea să concureze reciproc. De asemenea, Google vă poate penaliza în mod activ pentru conținutul duplicat și, deși este bine să determinați când această duplicare nu este "rău intenționată", vă recomandăm să redirecționați aceste URL-uri inutile către un URL preferat "canonic" (sau standard). Aceasta se numește canonicalization.
Acest lucru nu numai că ajută la consolidarea ratingurilor, cum ar fi popularitatea link-urilor, dar ajută și utilizatorii dvs. Dacă utilizează o adresă URL urâtă sau "incorectă" - sunt duși la adresa URL "corectă" - și ceea ce este în bara de adrese, este cel mai probabil să revină la.
De la 2.1.0, WordPress a gestionat redirecționarea canonică, chiar dacă a luat o presupunere educată la conținutul căutat dacă interogarea originală a returnat un 404. Din păcate, în acest caz, WordPress redirecționează către un URL greșit. Acest lucru se datorează faptului că URL-ul dorit de fapt nu este înțeles nativ de WordPress și a ignorat partea "post type" a URL-ului. Din fericire, cu toate acestea, putem folosi redirect_canonical
filtrați pentru a remedia acest lucru.
add_filter ('redirect_canonical', 'wptuts_redirect_canonical', 10, 2); funcția wptuts_redirect_canonical ($ redirect_url, $ requested_url) global $ wp_rewrite; // Anulează dacă nu folosește destul permalinks, este o hârtie sau nu o arhivă pentru tipul de "carte" post dacă (! $ Wp_rewrite-> using_permalinks () || is_feed () ||! Is_post_type_archive ('carte')) REDIRECT_URL $; // Obțineți părțile originale de interogare $ redirect = @parse_url ($ requested_url); $ original = $ redirect_url; Dacă este anul / lună / zi - adăugați anul dacă (is_year () || is_month () || is_day () )) $ year = get_query_var ('an'); $ redirect ['interogare'] = remove_query_arg ('year', $ redirect ['query']) $ $ redirect_url = user_trailingslashit (get_post_type_archive_link an; // Dacă este luna / zi - adăugați luna dacă (is_month () || is_day ()) $ month = zeroise (intval (get_query_var ('monthnum')) = $ (= $ zero = zero) (intll ($) = $ (= $ zero = $ redirect_url. = '/'.$day; // Dacă este trimis în pagină (' day ')), $ redirect [' query '] = remove_query_arg (' , paginare aplicată dacă (get_query_var ('paged')> 0) $ paged = (int) get_query_var ('paged'); $ redirect ['query'] = remove_query_arg ; dacă ($ paged> 1) $ redirect_url. = user_trailingslashit ("/ page / $ paged", "paged"); dacă ($ redirect_url == $ original) returnează $ original; // căutați pe orice interogare suplimentară vars $ redirect ['interogare'] = preg_replace ('# ^ \ ?? & *? #', '$ redirect_url &&! redirect ['query']))))) parse_str ($ redirect_query, $ redirect_url); return $ redirect_url;
Funcția de mai sus este lungă, dar nu foarte complicată. Ar putea fi îmbunătățită și este destinată doar ca un exemplu al a ceea ce puteți face cu redirect_canonical
filtru. Mai întâi verifică faptul că sunt permise destul de multe, că suntem după arhiva noastră "carte" și nu este un feed. Apoi verifică la rândul său:
www.example.com/books/[year]
www.example.com/books/[year]/[monthnum]
www.example.com/books/[year]/[monthnum]/[day]
O altă caracteristică care nu este acceptată pentru tipuri de posturi sau taxonomii "afară din cutie" este de a folosi etichete în structura permalink. În timp ce etichetele folosite în "slug" pentru o matrice de rescriere a tipului de post (sau a taxonomiei) sunt corect interpretate, WordPress nu înlocuiește aceste etichete cu valorile corespunzătoare atunci când generează permalinks - trebuie să le înlocuim noi înșine. Cu toate acestea, folosirea de etichete de acest fel încalcă și pagina de arhivare a tipului de postare - deci vom folosi o altă metodă. De exemplu, să presupunem că dorim ca tipul nostru de post "personalizat" să aibă structura:
www.example.com/books/[some-genre]/[a-book]
Folosesc exemplul unei taxonomii personalizate, dar aceleași metode pot fi folosite pentru orice permastructura (de exemplu data, autorul sau chiar un câmp particularizat). Mai întâi, adăugăm regula de rescriere:
funcția wptuts_custom_tags () add_rewrite_rule ("^ cărți / ([^ /] +) / / [[^ /] +) /?", index.php? post_type = book & genre = $ matches [1] & book = ]','top'); add_action ('init', 'wptuts_custom_tags');
Acum, www.example.com/book/fiction/the-wizard-of-oz
, de exemplu, face trimitere la cartea "Vrajitorul din Oz
“. Totuși, permalink-ul generat de WordPress încă produce www.example.com/book/the-wizard-of-oz
. Următorul pas este să modificați permalink-ul produs.
Am făcut ceva similar în prima parte când vrem să folosim o etichetă personalizată în structura post permalink. Apoi am folosit POST_LINK
filtru; de data aceasta folosim echivalentul pentru tipurile de posturi personalizate post_type_link
filtru. Folosind acest cârlig putem injecta structura noastră în cartea permalinks.
funcția wptuts_book_link ($ post_link, $ id = 0) $ post = get_post ($ id); dacă is_wp_error ($ post) || 'carte'! = $ post-> post_type || goală ($ post-> post_name)) return $ post_link; // Obțineți genul: $ terms = get_the_terms ($ post-> ID, 'genre'); dacă is_wp_error ($ terms) ||! $ terms) $ genre = 'necategorizate'; altfel $ genre_obj = array_pop ($ terms); $ genre = $ genre_obj-> slug; întoarcere home_url (user_trailingslashit ("cărți / $ gen / $ post-> post_name")); add_filter ('post_type_link', 'wptuts_book_link', 10, 2);
Să extindem structura permalink de mai sus pentru a realiza următoarele:
www.example.com/books/[some-genre]/[a-book]
www.example.com/books/[some-genre]
www.example.com/books/
Rețineți că ordinea în care regulile de rescriere sunt adăugate. Mai precis, regulile adăugate au prioritate.
Deci, mai întâi înregistrăm genomul personalizat al taxonomiei cu:
$ args = array (... 'rewrite' => array ('slug' => 'cărți'), ...) register_taxonomy ('genre', $ args);
Aceasta adaugă următoarea permastructură:
www.example.com/books/[some-genre]
După înregistrarea taxonomiei, înregistrăm apoi tipul de post personalizat după cum urmează:
$ args = array (... 'rewrite' => array ('slug' => 'cărți'), ...) register_post_type ('book', $ args);
Acest lucru ar înregistra următoarele reguli:
www.example.com/books/
(pe care le dorim)www.example.com/books/[a-book]
(pe care noi nu o facem)Cu toate acestea, al doilea este în conflict cu (și este "bătut" de) regulile concurente adăugate atunci când am înregistrat taxonomia noastră. Structura rezultată este:
www.example.com/books/fiction/slug
www.example.com/books/slug
www.example.com/books/
Anterior, când am analizat înregistrarea tipurilor de posturi, taxonomiile (sau în alte moduri, permstructurile), WordPress ne permite să specificăm propria noastră "ep_mask
“. Deci ce sunt ei??
În prima parte am analizat modul în care putem adăuga puncte finale add_rewrite_endpoint
. Al doilea argument în această funcție este o constantă (sau o combinație de constante folosind operatori de biți), care determină locul unde se adaugă punctul final. De exemplu:
add_rewrite_endpoint ('form', EP_PAGES);
Adaugă rescrierea Formularul (/(.*))?/?$
la fiecare pagină permalink și:
add_rewrite_endpoint ('json', EP_PAGES | EP_PERMALINKS);
Adaugă rescrierea json (/(.*))?/?$
la fiecare post și pagină permalink. Astfel, aceste constante specifică o "locație" (adică "la sfârșitul unui post permalink") și sunt numite masele endpoint (sau masca ep).
Când înregistrați un tip de post, WordPress înregistrează o permastructură - și asociată cu ea o mască de punct final. Apoi, atunci când regulile de rescriere sunt generate, se adaugă, de asemenea, orice reguli de rescriere a punctelor finale care au fost adăugate la respectiva mască a punctului final.
De exemplu, când WordPress înregistrează tipul implicit de tip "Pagină" - asociază masca punctului final EP_PAGES
cu permastructura paginii. Apoi, orice rescriere a punctelor finale adăugate regulilor EP_PAGES
sunt adăugate de fapt la acea pagină permastructură. Când înregistrați un tip de postare, vă puteți specifica propria mască de punct final sau utilizați una existentă. Implicit este EP_PERMALINKS
- ceea ce înseamnă că orice regulă de rescriere a unui punct final este adăugată la EP_PERMALINKS
sunt adăugate la regulile de rescriere ale tipului dvs. de post particularizat.
Desigur, este posibil să nu doriți ca regulile privind parametrii finali să fie adăugați pentru tipul de postare (în acest caz puteți utiliza măștile de puncte finale) EP_NONE
) sau este posibil să doriți să adăugați anumite reguli de rescriere a punctelor finale numai la tipul dvs. de post particularizat. Pentru a face acest lucru, trebuie mai întâi să creați o mască de punct final, care nu este decât o constantă care satisface:
Puterea cerinței 2 este necesară deoarece WordPress folosește logica binară pentru a determina unde trebuie adăugate regulile pentru parametrii finali. Din păcate, acest lucru este aproape imposibil de verificat, astfel încât cel mai bun sfat este să adăugați măști pentru parametrii finali numai atunci când este necesar și să-i oferiți o valoare foarte mare (de ex., 221). La momentul scrisului 20 până la 213 sunt utilizate de Core.
Definiți-vă masca pentru punctul final chiar înainte de a înregistra tipul postului sau taxonomia:
define ('EP_BOOK', 8388608); // 8388608 = 2 ^ 23 $ args = array ('labels' => $ etichete, 'has_archive' => true, 'rewrite' => => true 'pages' => true 'ep_mask' => EP_BOOK)); register_post_type ('book', $ args);
(Notă: Argumentele de mai sus folosesc argumentul WordPress 3.4. Dacă utilizați o versiune mai veche a WordPress, va trebui să utilizați acum versiunea depreciată permalink_epmask
.). Începând cu WordPress 3.4 puteți specifica o mască de punct final când înregistrați și o taxonomie.
În acest tutorial am acoperit elementele de bază ale API-ului de rescriere pentru tipurile de posturi și taxonomii, dar și câteva subiecte mai avansate. WordPress "manipularea rescrie este (neapărat) complexă și cel mai bun mod de a înțelege este de a înrobiți în codul sursă și de testare-l folosind ceea ce ai învățat și un plug-in analizor de rescriere.
Există câteva bilete care lucrează în momentul de față în dezvoltarea WordPress Trac, referitoare la API-ul Rewrite. În viitor, vom vedea o modalitate mult mai ușoară și fără conflicte de predare a măștilor endpoint.