我正在尝试将woocommerce产品SKU添加到产品的网址中。我遵循了这个指南(http://www.themelocation.com/how-to-add-sku-to-product-url-in-woocommerce/),但是我需要SKU来到slug之前。
像这样: http://test.com/shop/category/sku-product
我修改了上述链接中的代码,以便在wordpress管理区域成功获取此订单,但正如您可能预测的那样,它会导致所有产品达到404.
我该如何解决这个问题?某种htaccess重定向规则?
这是我修改过的代码:
function custom_meta_permalink( $link, $post ){
$post_meta = get_post_meta( $post->ID, '_sku', true );
if( empty( $post_meta ) || !is_string( $post_meta ) )
$post_meta = '';
$link = str_replace( '!!custom_field_placeholder!!', $post_meta, $link );
return $link;
}
add_filter( 'post_link', 'custom_meta_permalink', 10, 2 );
function append_sku_string( $link, $post ) {
$post_meta = get_post_meta( $post->ID, '_sku', true );
if ( 'product' == get_post_type( $post ) ) {
$end = substr($link, strrpos($link, '/') + 1);
$beg = substr($link, 0, strrpos( $link, '/' ));
$link = $beg . '/' .$post_meta.'-'.$end;
return $link;
}
}
add_filter( 'post_type_link', 'append_sku_string', 1, 2 );