WooCommerce:获取 URL 分页商店存档

WooCommerce: Get URL of paged shop archive

我需要 link 到分页商店存档 URL 以将其添加为 rel=canonical。 默认情况下,WooCommerce 似乎总是使用“所有产品”页面的 URL。

例如:所有产品存档页面有以下URL:

https://example.com/shop/

如果我转到第 2 页,URL 仍然是上面的那个。 但正确的版本是:

https://example.com/shop/page/2/

我尝试用 Yoast 重写 rel=canonical 标签,想用 /page/ 显示当前的 URL。 所以我尝试了这个:

$canonical = home_url( $wp->request );

还有这个:

$canonical = home_url( add_query_arg( array(), $wp->request ) );

遗憾的是没有成功。它总是只显示主页的 URL (https://example.com) 有什么办法可以得到页码吗?

好的,找到解决方案了。 $wp->request 似乎不适用于 WooCommerce 商店存档。

这是一个有效的解决方案。但它有一些硬编码的 URL 部分:

$canonical = get_permalink(woocommerce_get_page_id( 'shop' )).'page/'.get_query_var('paged').'/';

不知道在URL上加/page/有没有更好的解决办法。