PHP replace diacritics

Romanian Slugs – Wordpress

Dacă la un moment dat aveţi nevoie de o metodă pentru a înlocui automat diacriticele româneşti sau orice alte diacritice (maghiare, germane, etc) cu caractere latine, “normale”, atunci veţi găsi aici informaţiile de care aveţi nevoie. Partea de cod de mai jos, o puteţi utiliza oriunde aveţi nevoie, eu am făcut-o pentru a înlocui diacriticele din URL-ul generat automat (slug) din titlu, de Wordpress.

Ştiu că a existat la un moment dat, un plugin creeat în acest sens, dacă bine-mi amintesc, parcă se numea “RO-Slug” sau ceva de genul. Ei bine, din nu ştiu ce motive, la mine n-a funcţionat. Şi n-am mai stat să sap prin el, să văd unde-i buba, iar la aceea vreme am renunţat la idee.

Doar că, din nou m-am lovit de problema slug-urilor şi m-am enervat. Aşa că, mi-am suflecat tacticos mânecile tricoului şi m-am apucat de treabă.
Iar rezultatul am să vi-l împărtăşesc şi vouă, dacă vă veţi afla la un moment dat în aceeaşi situaţie ca mine.

Ce aveţi de făcut? Iată …

wordpress codex PHP replace diacritics

Deschideţi “/wp-admin/includes/post.php“, iar aici căutaţi următoarea linie de cod:

1
$return .= '<span id="editable-post-name-full">' . $post_name . "</span>\n";
$return .= '<span id="editable-post-name-full">' . $post_name . "</span>\n";

Deasupra liniei de cod menţionată mai sus, adăugaţi asta:

1
2
    $diacritics_array = array( 'Š'=>'S', 'š'=>'s', 'Ž'=>'Z', 'ž'=>'z', 'À'=>'A', 'Á'=>'A', 'Ã'=>'A', 'Ä'=>'A', 'Å'=>'A', 'Æ'=>'A', 'Ç'=>'C', 'È'=>'E', 'É'=>'E', 'Ê'=>'E', 'Ë'=>'E', 'Ì'=>'I', 'Í'=>'I', 'Î'=>'I', 'Ï'=>'I', 'Ñ'=>'N', 'Ò'=>'O', 'Ó'=>'O', 'Ô'=>'O', 'Õ'=>'O', 'Ö'=>'O', 'Ø'=>'O', 'Ù'=>'U', 'Ú'=>'U', 'Û'=>'U', 'Ü'=>'U', 'Ý'=>'Y', 'Þ'=>'B', 'ß'=>'Ss', 'à'=>'a', 'á'=>'a', 'ã'=>'a', 'ä'=>'a', 'å'=>'a', 'æ'=>'a', 'ç'=>'c', 'è'=>'e', 'é'=>'e', 'ê'=>'e', 'ë'=>'e', 'ì'=>'i', 'í'=>'i', 'î'=>'i', 'ï'=>'i', 'ð'=>'o', 'ñ'=>'n', 'ò'=>'o', 'ó'=>'o', 'ô'=>'o', 'õ'=>'o', 'ö'=>'o', 'ø'=>'o', 'ù'=>'u', 'ú'=>'u', 'û'=>'u', 'ý'=>'y', 'þ'=>'b', 'ÿ'=>'y', /* Diacritice romanesti */ 'ă'=>'a', 'Ă'=>'A', 'â'=>'a', 'Â'=>'A', 'ș'=>'s', 'ş'=>'s', 'Ș'=>'S', 'Ş'=>'S', 'ț'=>'t', 'ţ'=>'t', 'Ț'=>'T', 'Ţ'=>'T' );
    $post_name = strtr( $post_name, $diacritics_array );
	$diacritics_array = array( 'Š'=>'S', 'š'=>'s', 'Ž'=>'Z', 'ž'=>'z', 'À'=>'A', 'Á'=>'A', 'Ã'=>'A', 'Ä'=>'A', 'Å'=>'A', 'Æ'=>'A', 'Ç'=>'C', 'È'=>'E', 'É'=>'E', 'Ê'=>'E', 'Ë'=>'E', 'Ì'=>'I', 'Í'=>'I', 'Î'=>'I', 'Ï'=>'I', 'Ñ'=>'N', 'Ò'=>'O', 'Ó'=>'O', 'Ô'=>'O', 'Õ'=>'O', 'Ö'=>'O', 'Ø'=>'O', 'Ù'=>'U', 'Ú'=>'U', 'Û'=>'U', 'Ü'=>'U', 'Ý'=>'Y', 'Þ'=>'B', 'ß'=>'Ss', 'à'=>'a', 'á'=>'a', 'ã'=>'a', 'ä'=>'a', 'å'=>'a', 'æ'=>'a', 'ç'=>'c', 'è'=>'e', 'é'=>'e', 'ê'=>'e', 'ë'=>'e', 'ì'=>'i', 'í'=>'i', 'î'=>'i', 'ï'=>'i', 'ð'=>'o', 'ñ'=>'n', 'ò'=>'o', 'ó'=>'o', 'ô'=>'o', 'õ'=>'o', 'ö'=>'o', 'ø'=>'o', 'ù'=>'u', 'ú'=>'u', 'û'=>'u', 'ý'=>'y', 'þ'=>'b', 'ÿ'=>'y', /* Diacritice romanesti */ 'ă'=>'a', 'Ă'=>'A', 'â'=>'a', 'Â'=>'A', 'ș'=>'s', 'ş'=>'s', 'Ș'=>'S', 'Ş'=>'S', 'ț'=>'t', 'ţ'=>'t', 'Ț'=>'T', 'Ţ'=>'T' );
	$post_name = strtr( $post_name, $diacritics_array );

Salvaţi şi încărcaţi din nou fişierul pe server. Problem solved. Asta e tot.

Have fun …

Ţi-a plăcut acest articol ? Atunci votează-l, aici:
   
Comentează acest subiect
Acest articol a fost publicat de , sâmbătă, 21 mai 2016 in categoria Programare. Poti sa urmaresti raspunsurile catre acest articol prin RSS 2.0 feed. Poti sa adaugi un comentariu, sau poti sa pui un trackback (link) de pe propriul tau site:

Ctrl + C pentru a copia linkul

Adaugă un comentariu

Autentifică-te pe site și nu va mai trebui să completezi căsuțele de mai sus.

:) :( :d :"> :(( :dancing: :x 8-| /:) :o :-? :-" :-w ;) [-( :peace: arata toate iconitele »

 

Acum poți adăuga pe site, propriile tale articole. Click aici !



Anunturi Gratuite