onestic / magento2-regenerate-url-rewrites
为 Magento 2 添加一个 CLI 功能,允许重新生成产品和类别的 URL 重写
README
Magento 2 "Regenerate Url rewrites" 扩展添加了一个 CLI 功能,允许在所有商店或特定商店中重新生成产品/类别的 URL 重写。扩展主页:https://github.com/olegkoval/magento2-regenerate_url_rewrites
联系方式
- Email: contact@olegkoval.com
- LinkedIn: https://www.linkedin.com/in/oleg-koval-85bb2314/
捐赠/支持我
- Patreon
- Fondy
- BTC: bc1qssffnksrcfwalmg06n6dlr98vh9576hcer44q2
- ETC: 0x297dE8348E4B8f6Ce7fF25D23bD8a8E60b26b969
- BNB: bnb1r8gqxca0fsa2cyqr2e2g5eu4h3cdar57zp48xa
安装
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
使用以下命令生成URL重写,不清理缓存:
$> 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重写,将实体类型设置为"分类"
$> 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"的产品在ID为"3"的商店中重新生成URL重写
$> 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的产品在ID为"2"的商店中重新生成URL重写,并在过程结束后不运行完全重新索引
$> 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 "http://devdocs.magento.com/guides/v2.0/config-guide/cli/config-cli-subcommands.html")