Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何通过ID从Opencart类别隐藏产品?_Opencart - Fatal编程技术网

如何通过ID从Opencart类别隐藏产品?

如何通过ID从Opencart类别隐藏产品?,opencart,Opencart,我在Opencart中有一个网站。我们有几百个产品在我们的商店,我们正试图获得排名为搜索引擎优化的目的或搜索,但我们只希望他们的基本产品显示在类别页面上 假设我想从一个类别中隐藏所有产品,如果我在PHP字符串中有它们的ID,如下所示: 44444 3145,9745946045445145449445446447448457456387385 乘以30,因为我们有很多这类产品 有人知道我会怎么做吗?是否有我可以添加到类别模板或类别控制器的内容,以根据ID隐藏类别页面上显示的产品 正如@Jonid

我在Opencart中有一个网站。我们有几百个产品在我们的商店,我们正试图获得排名为搜索引擎优化的目的或搜索,但我们只希望他们的基本产品显示在类别页面上

假设我想从一个类别中隐藏所有产品,如果我在PHP字符串中有它们的ID,如下所示:

44444 3145,9745946045445145449445446447448457456387385

乘以30,因为我们有很多这类产品


有人知道我会怎么做吗?是否有我可以添加到类别模板或类别控制器的内容,以根据ID隐藏类别页面上显示的产品

正如@Jonid Bendo在评论中所说的那样,在如何实现这一点上,你确实有很多选择

首先,我不明白你为什么不禁用这些产品,或者干脆把它们从你的分类中删除

我可以提出两种方法:

数据库级。 控制器级别。 数据库级 您可以在产品中创建一个额外字段bool type,以确定您可以选择或不选择的产品,并在数据库请求中添加此条件:

 $sql = "SELECT p.product_id, (SELECT AVG(rating) AS total FROM " . DB_PREFIX . "review r1 WHERE r1.product_id = p.product_id AND r1.status = '1' |||| AND p.show_cat = '1' |||| GROUP BY r1.product_id) AS rating, (SELECT price FROM " . DB_PREFIX . "product_discount pd2 WHERE pd2.product_id = p.product_id AND pd2.customer_group_id = '" . (int)$this->config->get('config_customer_group_id') . "' AND pd2.quantity = '1' AND ((pd2.date_start = '0000-00-00' OR pd2.date_start < NOW()) AND (pd2.date_end = '0000-00-00' OR pd2.date_end > NOW())) ORDER BY pd2.priority ASC, pd2.price ASC LIMIT 1) AS discount, (SELECT price FROM " . DB_PREFIX . "product_special ps WHERE ps.product_id = p.product_id AND ps.customer_group_id = '" . (int)$this->config->get('config_customer_group_id') . "' AND ((ps.date_start = '0000-00-00' OR ps.date_start < NOW()) AND (ps.date_end = '0000-00-00' OR ps.date_end > NOW())) ORDER BY ps.priority ASC, ps.price ASC LIMIT 1) AS special";
控制器级

在得到产品清单后,逐一淘汰技术不太好的具有特定id的产品


还有很多其他的解决方案,这取决于你想花费多少工作和时间,以及达到什么样的质量

如果产品id在带有css显示的数组中,则可以添加样式:无;或者,当你在分类中循环产品时,简单地从结果中忽略它。tpl,有很多方法可以达到预期的效果,但我不推荐你的seo方法,因为它会在以后造成很多麻烦。。。。但最终这是你的选择。