出于某种原因,在WooCommerce的最新更新之后,我的分类标准已经发生了变化。
他们离开了:
www.mysite.com/genre/dance to www.mysite.com/pa_genre/dance
可能是在后端没有任何改变,但前端的可视化有。 URL的突然变化不仅会影响我的网站内部链接,还会影响外部链接,如果不能快速修复,Google也会收集这404页。
我查看了WooCommerce文件,不知道在哪里查看,但是wc-attribute-functions.php显示以下包含对'pa_'位的引用。
如果有人想回到我原来的网址结构,那将非常感激。
/**
* Get a product attributes name.
*
* @param mixed $name
* @return string
*/
function wc_attribute_taxonomy_name( $name ) {
return 'pa_' . wc_sanitize_taxonomy_name( $name );
}
/**
* Get a product attributes label.
*
* @param mixed $name
* @return string
*/
function wc_attribute_label( $name ) {
global $wpdb;
if ( taxonomy_is_product_attribute( $name ) ) {
$name = wc_sanitize_taxonomy_name( str_replace( 'pa_', '', $name ) );
$label = $wpdb->get_var( $wpdb->prepare( "SELECT attribute_label FROM {$wpdb->prefix}woocommerce_attribute_taxonomies WHERE attribute_name = %s;", $name ) );
if ( ! $label ) {
$label = ucfirst( $name );
}
} else {
$label = ucwords( str_replace( '-', ' ', $name ) );
}
return apply_filters( 'woocommerce_attribute_label', $label, $name );
}
/**
* Get a product attributes orderby setting.
*
* @param mixed $name
* @return string
*/
function wc_attribute_orderby( $name ) {
global $wpdb;
$name = str_replace( 'pa_', '', sanitize_title( $name ) );
$orderby = $wpdb->get_var( $wpdb->prepare( "SELECT attribute_orderby FROM " . $wpdb->prefix . "woocommerce_attribute_taxonomies WHERE attribute_name = %s;", $name ) );
return apply_filters( 'woocommerce_attribute_orderby', $orderby, $name );
}
答案 0 :(得分:0)
在Woocommerce 2.3.5更新后我遇到了同样的问题,快速解决方法是为属性添加重写规则。
您可以将它添加到主题中的functions.php文件中:
add_action('init', 'add_genre_url');
function add_genre_url()
{
add_rewrite_rule(
'^genre/([^/]*)$',
'index.php?pa_genre=$matches[1]',
'top'
);
//flush_rewrite_rules();
}
在添加重写规则后,必须至少调用一次flush_rewrite_rules()函数,出于性能原因将它保留在init操作上并不是一个好主意。也许有人可以解决这个问题。