opencart开发|opencart建站|opencart产品强制添加seo-keyword

通过清心醉

opencart开发|opencart建站|opencart产品强制添加seo-keyword

上文说了opencart的SEO优化,现在作者要讲的就是以产品的名称作为opencart产品的seo-keyword.

因为作者只考虑新增加产品即Add,所以晚点再看Edit修改产品是否会导致seo-keyword变更.

在product控制器里,add的方法中,引用了这么一句

$this->model_catalog_product->addProduct($this->request->post);

我们在对应的模型方法里找到该方法:

if (isset($data[‘keyword’])) {
$this->db->query(“INSERT INTO ” . DB_PREFIX . “url_alias SET query = ‘product_id=” . (int)$product_id . “‘, keyword = ‘” . $this->db->escape($data[‘keyword’]) . “‘”);
}

如果keyword的变量存在则写入重写URL,简单了.修改一下:

首先定义个私有成员:

private $name;

因为产品的名称是在数组$data[‘product_description’]里,而该方法里就有对该数组进行foreach循环

foreach ($data[‘product_description’] as $language_id => $value) {
$this->db->query(“INSERT INTO ” . DB_PREFIX . “product_description SET product_id = ‘” . (int)$product_id . “‘, language_id = ‘” . (int)$language_id . “‘, name = ‘” . $this->db->escape($value[‘name’]) . “‘, description = ‘” . $this->db->escape($value[‘description’]) . “‘, tag = ‘” . $this->db->escape($value[‘tag’]) . “‘, meta_title = ‘” . $this->db->escape($value[‘meta_title’]) . “‘, meta_description = ‘” . $this->db->escape($value[‘meta_description’]) . “‘, meta_keyword = ‘” . $this->db->escape($value[‘meta_keyword’]) . “‘”);
$tempname=$value[‘name’]; //提取产品名称
for ($i=0 ; $i<strlen($tempname); $i++)
{
if ($tempname[$i]==’ ‘||$tempname[$i]==’,’||$tempname[$i]==’,’||$tempname[$i]==’。’||$tempname[$i]==’ ‘)
{
//对上述字符进行转化。
$tempname[$i]=’-‘;
}
}
$this->name=$tempname.”-“.”$product_id”.”.html”;
}

然后修改过$data[‘keyword’]的操作

删除if (!isset($data[‘keyword’])) 判断,

直接写入MYSQL:
$this->db->query(“INSERT INTO ” . DB_PREFIX . “url_alias SET query = ‘product_id=” . (int)$product_id . “‘, keyword = ‘” . $this->db->escape($this->name) . “‘”);

这样不添加keyword的情况下,一样会生成对应的URL.

关于作者

清心醉 administrator

发表评论

如果喜欢作者的文章,您可以打赏给作者:

TRC20(虚拟货币):


ERC20(虚拟货币):


Bitcoin(BTC):