WordPress: URLuri curate şi funcţionale

Acum doi ani am pus la cale un plugin care repara o problemă simpatică: scotea diacriticele din linkurile articolelor de wordpress, pentru a se putea transmite mai uşor prin messenger sau prin email. Pluginul transforma linkul din

in

Succesul lui a fost limitat. Poate e din cauza mea, dar am tot dat mailuri oamenilor care aveau problema asta şi puţini dintre ei m-au ascultat. Acum un an, Vlad a făcut un plugin similar. Poate cine ştie, dacă vi se pare că al meu vă va fura articolele de pe blog şi mi le va trimite mie, îl folosiţi pe al lui. 

Mulțumesc că ai citit acest articol.
Dacă vrei să susții acest blog, cumpără un abonament de 5$

14 comentarii

  1. NOU
    #1

    Mai devreme am cautat pe blogul tau ceva care sa-mi spuna cum sa-l fac pe desteptul asta de Windows Live Writer (e chiar destept, mai putin la faza asta) sa-mi scrie url-urile fara diacritice atunci când publică un articol. Parca ai scris ceva de genul asta, dar n-am reusit sa identific textul. Momentan mi le „mănâncă”. Any idea unde să mă documentez?

    00
  2. Felicitari lui Vlad insa pluginul e ok pana la un punct, de ce?
    Pentru ca sunt foarte curios cat la suta din bloggeri romani scriu cu diacritice.

    00
  3. Din pacate ambele abordari sunt gresite. Nu sunt mare programator, dar va dau un sfat. In PHP exista o functie care converteste aceste caractere in functie de limba. Nu trebuie sa faceti o lista specifica cu toate caracterele din romana pentru ca ignorati caracterele din alte limbi sau semne speciale.

    Primul pas: setarea limbii
    setlocale(LC_ALL, ‘ro_RO’);

    Pasul doi: convertirea in codarea dorita pentru URL
    iconv(„UTF-8”, ‘US-ASCII//TRANSLIT//IGNORE’, trim(stripslashes($url)));

    Partea frumoasa este ca nu trebuie o lista si poti sa convertesti caractere gen „ąćżźćł” si chiar semne gen „€” (care devine „eur”).

    Am pus un demo la https://www.eyecon.ro/convert.php . Imi este lene sa fac plugin WP, dar sunt convins ca se gasese cineva sa faca unul.

    00
  4. Pluginuri ca asta sunt cu tona, total nefolositoare ( cand postezi ceva fi atent si la slug )

    Seriously, iti ia 5 secunde sa iti corectezi permalinkul dc sa iti „umflii” siteul cu tampenii dinastea

    Beginners…-.-„

    00
  5. bre, eu nu inteleg care e faza..scriu numai cu diacritice, am mai mereu diacritice in titluri, dar sunt scoase automat vad.. fara sa am instalata vreo chestie pentru treaba asta..

    00
  6. NOU
    #7

    Legat de problema cu Windows Live Writer, s-ar putea sa fiu pe dinafara (eu si codul de wordpress nu prea ne-am intalnit in viata), dar m-am uitat cateva minute pe ce se intampla (ce se comunica, ce se primeste, etc) si am ajuns la urmatoarele concluzii:

    – Windows Live Writer nu trimite slug-ul, url-ul, ci doar ID-ul postului (cand exista) si title-ului. De trimis le trimite intregi, dar face din ă î ş ţ â => ă î ÅŸ Å£ â, iar pe server side &icirc si &acirc dispar. Restul sunt inlocuite corect cu a, s şi t.
    – La o prima vedere, functia care le distruge este wp-includes/formatting.php/sanitize_title_with_dashes($title) care cheama remove_accents din acelasi fisier. Un hacking scurt in oricare dintre ele ar rezolva problema. Ba chiar se poate face un hacking in xmlrpc.php (function blogger_newPost + $post_data[‘post_name’]) sau wp-includes/post.php/ function wp_insert_post. Chestiunea ar trebui sa fie foarte simpla pentru o solutie romaneasca care sa nu ne mai streseze cand scriem din windows live writer.

    Nu stiu cum se face asta civilizat, cu plugin-uri and stuff, deci la un update de wordpress ar putea sa dispara modificarile. Nu e o tragedie, ar fi doar vreo 2 linii de adaugat. Nici nu am testat ce e mai sus, doar am „observat”. Poate e cineva mai wordpress-ist care pune lucrurile in practica.

    00
  7. Pluginul tău a fost primul pe care l-am instalat, înainte de orice. Mersi!

    00
  8. @Tibi: și la mine e la fel – merge din wordpress implicit. Poate pentru cei care sunt pe versiuni vechi de wordpress, nu știu. Chiar mai e necesar pluginul de genul ăsta?
    Uitîndu-mă prin codul de la wordpress, văd că există o funcție, sanitize_title, care pare-se e de la versiunea 1.0.0. Poate a fost vreo versiune în care erau suportate doar diacriticele cu sedilă. Oricum ar veni treaba, it works out of the box cu 3.2.1

    00
  9. Cum ma Radu? O cam faci pe desteptul. Tu vrei sa futi vreo gagica dintre comentatori. :)

    00
  10. Eh, sunt multe solutii, chestia e ca e vorba de WordPress. Eu de exemplu folosesc mai low level behaviour sluggable pe doctrine orm cu regulile aferente si aia e. Dar nu e relevant pentru WordPress.

    00
  11. Cred că au băgat feature-ul ăsta și în WordPress direct, cel puțin mie îmi transformă diacriticele în caracterele lor corespunzătoare.

    00
  12. Am folosit pluginul tau si isi face bine treaba. Nu pe blogul meu, ci in alta parte. Multumesc de plugin.

    00
  13. WordPress instalat în română face asta nativ, văd. Nu ştiu începând cu ce versiune.

    00

Susținere

Susține acest blog cumpărând de la eMAG sau de la Finestore.