onestic/magento2-regenerate-url-rewrites

为 Magento 2 添加一个 CLI 功能,允许重新生成产品和类别的 URL 重写

1.6.2 2021-10-19 08:37 UTC

README

Magento 2 "Regenerate Url rewrites" 扩展添加了一个 CLI 功能,允许在所有商店或特定商店中重新生成产品/类别的 URL 重写。扩展主页:https://github.com/olegkoval/magento2-regenerate_url_rewrites

联系方式

捐赠/支持我

  • 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")