Woocommerce。在slug之前将产品SKU添加到url

时间:2016-07-11 13:54:54

标签: php wordpress .htaccess woocommerce

我正在尝试将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 );

0 个答案:

没有答案