Modul în care au fost tratate caracterele româneşti pe tastaturi de-a lungul timpului au dat de multe ori bătăi de cap atât realizatorilor de programe software cât şi utilizatorilor finali.
Pe scurt, există două tipuri de glife (reprezentări grafice) asociate caracterelor Ș și Ț respectiv:
- cu sedile: ş ţ (pe tastatura Romanian Legacy)
- cu virgulă: ș ț (pe tastatura Romanian Standard)
Conform precizărilor Institutului de Lingvistică al Academiei Române din anul 2003, a doua variantă (cea cu virgulă dedesubt) este cea corectă ( sursa: http://www.secarica.ro/html/s-uri_si_t-uri.html#istoric ).
Ultima versiune de Windows (Vista) include in fonturile de bază (core fonts) versiunea corectă a caracterelor Ș și Ț.
Din nefericire însă, atunci când crează URL-urile SEO la articole, platforma WordPress nu convertește caracterele corecte (cele cu virgulă), în schimb le convertește pe cele cu sedile.
Ț-ul din titlu este scris cu caracterul corect, dar WordPress nu îl convertește în T.
Nu ar fi așa o mare problemă dacă ne uităm în bara de adrese a browserului unde URL-ul se vede ok:
http://www.politicalocala.ro/cluj-este-”județul-saptamanii”-pe-politicalocala-ro.html
Problema este că în spatele acestei afișări, URL-ul este indexat astfel:
Dacă ne uităm la versiuni mai vechi de Windows această problemă nu apare:

În imaginea de mai sus puteţi observa Ţ-ul cu sedilă, cel pe care WordPressul îl transformă corect în T, dar care, pe lângă faptul că nu e corect, nici nu apare în toate versiunile de tastaturi.
Chiar şi aşa, în exemplu de mai sus, observăm că ghilimelele modificate de obicei de programe de editare gen Microsoft Word, râmân în categoria caracterelor pe care WordPress nu le converteşte atunci când crează permalinkurile SEO.
Corect ar fi ca URL-ul să fie și afișat, dar și indexat CURAT sub următoarea formă:
http://www.politicalocala.ro/cluj-este-judetul-saptamanii-pe-politicalocala-ro.html
Pentru asta am creat pluginul de mai jos. Acesta are la bază pluginul HU Permalinks realizat de Gravuj Miklos Henrich – http://mikiblog.info pentru caracterele cu accente folosite în limba maghiară.
LATER EDIT:
…Sau cel puțin inițial a avut la bază pluginul HU Permalinks. Ulterior Eugen m-a tras de urechi și mi-a atras atenția că exista un astfel de plugin la Zoso pe blog. Acum eu nu știu dacă tipul ăla s-a luat după Zoso sau după SEO Slugs (nici nu mă interesează). Cert este că la sugestia lui ByREV am folosit funcția sanitize_title și am adăugat o serie nouă (zic eu completă) de simboluri care nu sunt convertite de funcția obișnuită.
Așadar, pe lângă litera Ș cu virgulă și litera Ț cu virgulă, pluginul rezolvă acum și problema conversiei următoarelor simboluri:
- „ – ghilimele de deschidere (99 jos)
- ” – ghilimele de închidere (99 sus)
- “ – ghilimele de închidere (66 sus)
- ‚ – apostrof jos
- ’ – apostrof sus (9)
- ‘ – apostrof sus (6)
- – – liniuta de unire (endash)
- — – linia de dialog / linia de pauză (emdash)
- _ – linie jos (underscore)
- … – puncte de suspensie
- « – ghilimele franțuzești de deschidere
- » – ghilimele franțuzești de închidere
- © – copyright
- ™ – unregistered trade mark
- ® – registered trademark
- ℠ – unregistered service mark
- ℗ – sound recording copyright
- § – section sign
- ø – zero barat
- Φ – phi (folosit adesea pentru diametru)
- ¤ – currency
- ‰ – per mie
- ‱ – per zece mii
În principiu, restul simbolurilor obşinuite de pe tastatură sunt deja tratate de funcţia sanitize_title. În lista de mai sus am inclus simboluri care rezultă de obicei din funcția Auto-Correct din Microsoft Word și alte simboluri care ar putea apărea in titluri de articole (exemplu: simbolul pentru diametru pe site-uri cu specific tehnic)
Prin instalarea acestui plugin veți obține automat permalinkuri curate care sunt mult mai bine și mai corect indexate de motoarele de căutare.
Pentru a instala pluginul:
1. Descărcaţi arhiva de aici: http://wordpress.org/extend/plugins/ro-permalinks/
2. Uploadaţi `ro-permalinks.php` în folderul `/wp-content/plugins/`
3. Activaţi pluginul din meniul ‘Plugins (Module)’ din WordPress
Nu e nevoie de setări suplimentare.
Atenţie: întrucât nici nu vrem şi nici nu e bine să modificăm permalink-uri deja create, pluginul nu funcţionează decât pentru articolele nou create după instalarea şi activarea pluginului.
Tot la sugestia lui ByREV am renunțat la ideea de a nu modifica permalinkul când se actualizează un articol deja publicat. WordPress 3+ ține într-adevăr istoricul permalinkurilor și gestionează automat redirecturile.
Cu toate acestea, puteți decomenta linia 18 din fișierul ro_permalinks.php dacă nu doriți să se actualizeze și permalinkul atunci când modificați un articol deja publicat.
Versiunea 1.2 (15/12/2010):
* Principala modificare este aparitia paginii de optiuni
* Acum se poate seta din optiuni daca se inlocuiesc sau nu vechile permalinkuri la actualizarea unui articol existent
* Am rezolvat problema actualizarii din alte scripturi sau pluginuri. Pluginul foloseste strict variabila $_POST['post_title'] pentru actualizarea permalinkului pentru ca aceasta sa se intample chiar si la Auto-Save
LATER EDIT: Și Wikipedia recunoaște și vine cu o soluție la această problemă valabilă pentru platforma lor: http://ro.wikipedia.org/wiki/WP:DVN









All in one SEO te scapa de orice plug-in de genu, elimina automat sedilele si virgulitele ;)
Ești sigur?
Da. Pui regulile in all in one seo la configurarea generala, si dupa aia in htacces pui ce si cum sa schimbe. Asta iti schimba automat prin htaccess sau iti face redirect, ca e un pic aiurea daca face redirect :)
Bai Mihaita, iti spun sincer, dar sa nu te superi pe mine, ca n-am inteles nimic din ce ai zis aici. In plus, am verificat cu All in One SEO instalat si nu rezolva problema.
De asta ma gandesc ca poate nu ai inteles exact care e problema pe care o rezolva pluginul pe care l-am facut eu.
Uite, fa experimentul asta: copiaza “șțâăî – şţăâî” intr-un articol nou pe blogul tau si da-i Save. Spune-mi ce permalink iti genereaza WordPress automat. Eu zic ca iti va genera “șțaai-staai.html” adica primele diacritice nu le converteste.
Ceea ce face pluginul meu este sa le converteasca si pe acelea, astfel incat permalinkul sa fie “staai-staai.html”
Acum intelegi?
[...] This post was mentioned on Twitter by Vlad Dulea and Alexandru Burlacu, Sorin Neagu. Sorin Neagu said: RT @VladDulea: Un plugin WordPress pentru URL-uri curate, fara diacritice si simboluri http://bit.ly/ePXPTN [...]
I lold. Like a lot. http://www.zoso.ro/ro-slugs-plugin/
Uite bai Eugen, asta e diferenta intre tine si mine (si altii) :))
Tu esti extrem de bine informat cand vine vorba de WordPress. Eu nu stiam de pluginul asta si nici nu l-am gasit (m-am uitat pe libraria de pluginuri de pe wordpress si am dat un scurt Google research – recunosc nu aprofundat).
Acuma ce sa zic? Asta e… O sa il verific si pe acesta sa vad cum merge ;)
:))) n-am ce sa verific ca e identic :)))
Data viitoare poate întrebi. :))
Din punctul meu de vedere, poti face sa rescrie si vechile linkuri, fara sa ai grija “ca nu e bine”. WP 3+ face redirectare automata, pentru ca se salveaza orice varianta anterioara de SLUG.
Se poate face la activare, o singura data sau dintr-un meniu in administrare.
btw, poti pune filtru direct pe “sanitize_title” , astfel:
1. scapi de apelarea a 2 functii: strtolower si stripslashes
2. se elimina si linia str_replace(” “, “-”, $ro_slug) , pentru ca wordpress-ul rezolva deja problema spatiilor.
3. nu mai folosesti _POST['post_title']
In felul asta pastrezi o compatibilitate mai buna cu versiunile ulterioare de wp, scade complexitatea scriptului, creste viteza de executie!
corect. voi face asta. multam!
Cu placere, s’alta data .. cu folos desigur ;)
la sugestia lui @byrev am facut o versiune imbunatatita a pluginului WordPress pt permalinkuri curate: http://bit.ly/ePXPTN
via uberVU
N-ar fi mai logic sa faci pur si simplu o inversie alfanumerica, si sa elimini orice caracter nu-i numar sau cifra ? Zic si eu.
Functia sanitize_title face deja acest lucru (elimina aproape orice caracter care nu e cifra sau litera) iar pe cele pe care nu le elimina le inlocuieste cu codul UTF-8 aferent. Practic in plugin, dupa curatare, iau codurile caracterelor ramase si le elimin sau inlocuiesc, dupa caz.
Spune-mi daca mai este alta functie care s-ar putea folosi mai usor…
Încă un plugin în plus.. Nu este mai simplu așa
Alex… ceea ce zici tu acolo nu rezolvă problema discutată aici. Tu faci acolo o conversie a bazei de date astfel încât să îţi accepte diacritice. Aici e vorba de altceva. Baza de date accepta diacriticele dar wordpress nu le converteşte corect atunci când crează permalinkurile.
Citeşte cu atenţie despre ce e vorba. Dacă nu ai răbdare să citeşti tot îţi recomand să faci acelaşi test pe care i l-am recomandat şi lui Mihai mai sus: copiaza “șțâăî – şţăâî” in câmpul TITLU al unui articol nou pe blogul tau si da-i Save. Spune-mi ce permalink iti genereaza WordPress automat…
My bad, am citit articolul pe repede.. iar comentariile deloc.
@CristianSitov uite mai multe detalii si aici: http://vlad.dulea.ro/2010/12/13/url-uri-curate-pentru-cei-care-scriu-cu-diacritice/
via uberVU
[...] Alex B: "My bad, am citit articolul pe repede.. iar…" pe 14 decembrie 2010 02:21 la articolul URL-uri curate pentru cei care scriu cu diacritice [...]
;) bun bun, un LEVEL UP in dezvoltare!
O sa’ti mai dau o sugestie care va “ocoli” pluginul cand nu esti in admin, pentru ca pana la urma, scopul lui este sa fie rulat numai cand scrii/modifici articole.
ro-permalinks.php va contine numai si numai urmatorul cod:
if (is_admin()) { include(‘ro-permalinks-admin.php’); }
Desigur, se pastreaza headerul actual care defineste pluginul.
In felul acesta, nucleul PHP nu va mai interpreta/parsa nimic din cod atunci cand blogul este vizitat de user anonim.
Avantajul este desigur viteza de executie a unei sesiuni, siguranta impotriva unei eventuale gauri de securitate, etc.
Inca o chestie privind securitate, spre exemplu: ca fisierul “ro-permalinks-admin.php” sa nu poate apelat direct, poti pune prima linie de cod:
if (!defined(‘WPINC’)) die(‘Go hack your mama!’);
Ultima sugestie nu este obligatorie, insa e utila in unele cazuri, la tine nu, dar nici nu strica sa fie :D
gata! done it ;)
[...] the original: URL-uri curate pentru cei care scriu cu diacritice Posted in WordPress Plugins « Minimal WordPress Theme by Elegant Themes Both comments [...]
as avea si eu o intrebare ….. am probleme cu diacriticele….in ce sens? cand trebuie sa pun ă imi apare ceva de genu | ….. asta cand copii o postare :)
[...] Mai multe detalii despre acest plugin puteti citi aici: http://vlad.dulea.ro/2010/12/13/url-uri-curate-pentru-cei-care-scriu-cu-diacritice/ [...]
RT @claudiuciobanu: RT @VladDulea: Un plugin WordPress pentru URL-uri curate, fara diacritice si simboluri http://bit.ly/ePXPTN
via uberVU