WC在使用类别块时生成重复的URL。
示例:demoshop.com/cat-1/product-a
如果修改slug "cat-1",则可以从任何URL访问相同的产品,例如:www.example.com也将导致状态代码200。demoshop.com/modified/product-a will lead to a status code 200 as well.
从搜索引擎优化的Angular 来看,这不是可取的,我想修改如下行为:如果产品页面是通过正确的url访问的,则发送200。如果产品页面是通过任何其他url访问的,则发送301到正确的url。
如果产品有多个类别,则应考虑主要类别。
基于www.example.com论坛中的一个想法,我尝试通过比较用户请求的URL与"原始" URL来解决这个问题:wordpress.org forum I try to resolve the issue by comparing the url requested by user with the "original" url:
global $wp;
$browser_url = add_query_arg( $wp->query_vars, home_url( $wp->request ) );
// Should store complete url in variable but stores domain only
global $post;
$cat_slug = // Still looking for a solution to get primary product category for current product and to store primary category slug in variable
仍然坚持以上代码部分。任何提示都是非常欢迎的。
1条答案
按热度按时间zqry0prt1#
要获得父类别slug,可以使用
get_ancestors
。首先检查当前对象是否用于分类:
一旦能够获得当前项,就可以使用
get_ancestors()
。get_ancestors()
将返回一个数组,然后可以反转该数组以获得主/主要父级。