olegkoval / magento2-regenerate-url-rewrites
为Magento 2添加一个CLI功能,允许重新生成产品和类别的URL重写。
README
Magento 2 "Regenerate Url rewrites" 扩展添加了一个CLI功能,允许在所有商店或特定商店中重新生成产品/类别的URL重写。扩展主页:https://github.com/olegkoval/magento2-regenerate_url_rewrites
联系方式
捐赠/支持我
安装
COMPOSER 安装
- 运行composer命令
$> composer require olegkoval/magento2-regenerate-url-rewrites
手动安装
-
从压缩文件中提取文件
-
将文件部署到Magento2文件夹
app/code/OlegKoval/RegenerateUrlRewrites
启用扩展
- 启用扩展(使用Magento 2命令行界面 *)
$> php bin/magento module:enable OlegKoval_RegenerateUrlRewrites
- 为了确保启用的模块已正确注册,请运行 'setup:upgrade' 命令
$> php bin/magento setup:upgrade
- [如果需要] 重新编译代码和重新部署静态视图文件
$> php bin/magento setup:di:compile
$> php bin/magento setup:static-content:deploy
如何使用
- 要重新生成所有商店中所有产品的URL重写(仅限产品),将实体类型设置为"product"
$> php bin/magento ok:urlrewrites:regenerate --entity-type=product
因为 product
实体类型是默认的 - 你可以省略它
$> php bin/magento ok:urlrewrites:regenerate
- 要重新生成特定商店视图中的URL重写(例如:商店视图ID是"2"),请使用选项
--store-id
$> php bin/magento ok:urlrewrites:regenerate --store-id=2
- 要重新生成特定产品的URL重写,请使用选项
product-id
(例如:产品ID是"122")
$> php bin/magento ok:urlrewrites:regenerate --entity-type=product --product-id=122
或者
$> php bin/magento ok:urlrewrites:regenerate --product-id=122
- 要重新生成特定产品范围中的URL重写,请使用选项
products-range
(例如:重新生成ID在"101"和"152"之间的所有产品)
$> php bin/magento ok:urlrewrites:regenerate --entity-type=product --products-range=101-152
如果在该范围内存在ID间隙(在范围101-152中,产品ID为110、124、150不存在) - 请不要担心,脚本可以处理这种情况。
或者
$> php bin/magento ok:urlrewrites:regenerate --products-range=101-152
- 要保存当前的URL重写(您想获取新的URL重写并保存当前),请使用选项
--save-old-urls
$> php bin/magento ok:urlrewrites:regenerate --save-old-urls
- 要防止重新生成"url_key"值(使用当前的"url_key"值),请使用选项
--no-regen-url-key
$> php bin/magento ok:urlrewrites:regenerate --no-regen-url-key
- 如果您不希望在URL重写生成结束后运行完整重新索引,请使用选项
--no-reindex
$> php bin/magento ok:urlrewrites:regenerate --no-reindex
- 如果您不希望在URL重写生成结束后运行缓存:清理,请使用选项
--no-cache-clean
$> php bin/magento ok:urlrewrites:regenerate --no-cache-clean
- 如果您不想在生成URL重写后运行cache:flush,请使用选项
--no-cache-flush
$> php bin/magento ok:urlrewrites:regenerate --no-cache-flush
- 如果您不想在控制台显示进度条,请使用选项
--no-progress
$> php bin/magento ok:urlrewrites:regenerate --no-progress
重新生成类别URL重写
- 要重新生成所有店铺中所有类别的URL重写,将实体类型设置为"category"
$> php bin/magento ok:urlrewrites:regenerate --entity-type=category
- 要重新生成特定类别的URL重写,请使用选项
category-id
(例如:类别ID为"15")
$> php bin/magento ok:urlrewrites:regenerate --entity-type=category --category-id=15
- 要重新生成特定类别范围的URL重写,请使用选项
categories-range
(例如:重新生成ID在"4"和"12"之间的所有类别)
$> php bin/magento ok:urlrewrites:regenerate --entity-type=category --categories-range=4-12
* 如果范围内有ID间隔(在范围4-12中类别ID"6"不存在)- 不要担心,脚本会处理这种情况。
** 如果您使用选项--category-id
或--categories-range
,则可以省略选项--entity-type=category
- 扩展将理解您想使用类别实体。
您可以组合选项
$> php bin/magento ok:urlrewrites:regenerate --store-id=2 --save-old-urls --no-regen-url-key --no-reindex
您不能将以下选项组合在一起
--entity-type=product
和--category-id
/--categories-range
--entity-type=category
和--product-id
/--products-range
--category-id
和/或--categories-range
和/或--product-id
和/或--products-range
已弃用的选项
--check-use-category-in-product-url
- 扩展使用内置的Magento URL重写生成器,以任何方式检查此选项。
用法示例
- 为ID为"38"的产品重新生成URL重写,店铺ID为"3"
$> php bin/magento ok:urlrewrites:regenerate --entity-type=product --store-id=3 --product-id=38
或者
$> php bin/magento ok:urlrewrites:regenerate --store-id=3 --product-id=38
- 为ID为5,6,7,8,9,10,11,12的产品重新生成URL重写,店铺ID为"2",并在处理结束后不运行完整重建索引
$> php bin/magento ok:urlrewrites:regenerate --entity-type=product --store-id=2 --products-range=5-12 --no-reindex
- 为ID为"22"的类别在所有店铺中重新生成URL重写并保存当前URL重写
$> php bin/magento ok:urlrewrites:regenerate --entity-type=category --category-id=22 --save-old-urls
- 为ID为21,22,23,24,25的类别在店铺ID为"2"中重新生成URL重写
$> php bin/magento ok:urlrewrites:regenerate --entity-type=category --categories-range=21-25 --store-id=2
祝您愉快!
最好的祝愿,Oleg Koval
* 参考:http://devdocs.magento.com/guides/v2.0/config-guide/cli/config-cli-subcommands.html