En af ulemperne ved de fleste opensource webshops er, at de ofte genererer en masse duplicat content. Her er ZenCart ingen undtagelse. Da jeg ikke har kunnet finde nogen der har lavet et modul, måtte jeg jo gøre det selv.
Du er velkommen til at benytte det selv, dog skal du bemærke følgende: det er skrevet til ZenCart 1.3.7, og Ultimate Seo Urls skal være installeret. Jeg kører selv med at vise parent category på kategorisiderne, så bruger du ikke det må du selv fjerne det i koden.
For at bruge det skal du tilføje en kodesnas til html_header.php, som findes i includes/templates/DITDESIGN/common/
Derudover skal du uploade en fil kaldet canonical_url.php til includes/modules med nedenstående indhold
/* Function to create canonical URLS, with Ultimate SEO Urls enabled.*/
$replaces = array(",",".","!","/","'","&");
if(!isset($_GET[products_id]) && $current_category_id > 0){
$catnamequery = "SELECT categories_name FROM categories_description WHERE categories_id = $current_category_id";
$getcatname = $db->Execute($catnamequery); $catname = $getcatname->fields['categories_name'];
$parentidquery = "SELECT parent_id FROM categories WHERE categories_id = $current_category_id";
$getparentid = $db->Execute($parentidquery);
$parentcatid = $getparentid->fields['parent_id'];
if($parentcatid != 0){
$parentcatnamequery = "SELECT categories_name FROM categories_description WHERE categories_id = $parentcatid";
$getparentcatname = $db->Execute($parentcatnamequery);
$parentcaturl = $parentcatid . "_";
$parentcatname = $getparentcatname->fields['categories_name'] . "-"; }
$caturl = $parentcatname . $catname; $canonical_cat = str_replace($replaces, '', $caturl);
$canonical_cat = str_replace('æ', 'ae', $canonical_cat);
$canonical_cat = str_replace('ø', 'oe', $canonical_cat);
$canonical_cat = str_replace('å', 'aa', $canonical_cat);
$canonical_cat = str_replace(' ','-', $canonical_cat);
$canonical = "http://yourwebsite.dk/” . $canonical_cat . “-c-” . $parentcaturl . $current_category_id . “.html”;
$canonical_url = strtolower($canonical);
}
if(isset($_GET[products_id])){
$productsnamequery = “SELECT products_name FROM products_description WHERE products_id = $_GET[products_id]”;
$getproductname = $db->Execute($productsnamequery);
$can_product_name = $getproductname->fields[’products_name’];
$canonical_prod = str_replace($replaces, ”, $can_product_name);
$canonical_prod = str_replace(’æ’, ‘ae’, $canonical_prod);
$canonical_prod = str_replace(’ø’, ‘oe’, $canonical_prod);
$canonical_prod = str_replace(’å’, ‘aa’, $canonical_prod);
$canonical_prod = str_replace(’ ‘,’-', $canonical_prod);
$canonical = “http://yourwebsite.dk/” . $canonical_prod . “-p-” . $_GET[products_id] . “.html”;
$canonical_url = strtolower($canonical);
}
?>
Derudover skal du tilføje følgende til toppen af din html_header.php:
require('includes/modules/canonical_url.php');
og endelig dette et sted i headeren:
<?php if($canonical_url != ""){?>
<link rel="canonical" href="<?php echo $canonical_url;?>"/>
<?php } ?>