Link-uri fără diacritice în WordPress

Update: Acest defect a fost în sfârșit rezolvat și nu ar trebui să mai facă probleme în WordPress 3.1 (care ar trebui să apară prin decembrie, 2010).

Mi-ar place ca toate lucrurile să meargă, pur și simplu. Din păcate, asta nu se întâmplă aproape niciodată, mai ales când vine vorba de diacritice și mai ales dacă ne uităm la diacriticele românești.

Deoarece URL-urile cu diacritice cauzează diferite problem în motoarele de căutare și nu numai, WordPress le convertește automat.

Din păcate, literele ‘ț’ și ‘ș’ nu sunt convertite în ‘t’, respectiv ‘s’.

Există însă o soluție destul de simplă: În fișierul functions.php al temei de WordPress folosite de tine, adaugă următoarele linii de cod:

add_filter('wp_insert_post_data', 'caractere_problema');
function caractere_problema($data) {
	if ( empty($data['post_name']) )
		$name = $data['post_title'];
	else
		$name = $data['post_name'];

	$rep = array(
		'%c8%9b' => 't',
		'%c8%99' => 's',
		urldecode('%c8%9b') => 't',
		urldecode('%c8%99') => 's',
	);

	$new_name = str_replace(
		array_keys($rep),
		array_values($rep),
		$name
	);

	if ( $new_name == $name )
		return $data;

	$data['post_name'] = $new_name;
	return $data;
}

Asta e tot.

comments powered by Disqus