Wednesday, November 10, 2010

Simple:Press forums: problēma ar SEO saitēm

Problēma:
Ir uzlikts Simple:Press forums, un - neiet SEO saites (kuras ģenerē pats forums). Lieta tāda, ka šis forums saiti uz forumu liek tādu pašu kā virsrakstu. Tātad, ja virsraksts saturēs Latviešu (vai citas valodas) nacionālos burtus, tad saite nestrādās. Pieņemsim, pārdod rādīsies kā p011rdod vai kas tamlīdzīgs :)



Risinājums:
1) Ejam uz web serveri kurā ir iemests mūsu forums;
2) Veram vaļā failu sf-common-functions.php no direktorijas simple-forum/library;
3) Atrodam funkcijas sf_create_slug($title, $type, $checkdup=true) deklarēšanu, un uzlabojam to:

function sf_create_slug($title, $type, $checkdup=true)
{
//OLD $slug = apply_filters('sanitize_title', $title);
  $title = apply_filters('sanitize_title',$title);  //NEW

# clean up pm slug as used for html element id=no url
if($type == 'pm')
{
$altslug = rawurldecode($slug);
$slug = sanitize_html_class($slug, $altslug);
}

if($checkdup)
{
//OLD $slug = sf_check_slug_unique($slug, $type);
    $title = sf_check_slug_unique($title, $type); //NEW
}
//OLD $slug = apply_filters('sf_create_slug', $slug, $type);
  $title = apply_filters('sf_create_slug', $title, $type);    //NEW

//OLD return $slug;
return $title; //NEW
}

4) Šajā pat failā vēl piemetam klāt šādas rindiņas:

function sanitize_title_with_translit($title) {
$iso = array("Ā"=>"A", "ā"=>"a", "Č"=>"C", "č"=>"c", "Ē"=>"E", "ē"=>"e", "Ģ"=>"G", "ģ"=>"g", "Ī"=>"I", "ī"=>"i", "Ķ"=>"K", "ķ"=>"k", "Ļ"=>"L", "ļ"=>"l", "Ņ"=>"N", "ņ"=>"n", "Š"=>"S", "š"=>"s",
   "Ū"=>"U", "ū"=>"u", "Ž"=>"Z", "ž"=>"z");
return strtr($title, $iso);
}

add_action('sanitize_title', 'sanitize_title_with_translit', 0);
 

5) Ejam pēc alus :-)

No comments: