woocommerce 中文固定链接变成数字ID

woocommerce是我用的比较多的一个商城系统。使用的时候发现了个问题。。
默认商城的POSTID是中文或者标题。我想修改成数字ID 找了很多插件有很多都可以解决这个问题。
但是我现在 遇到的问题是 在WPML插件的双语环境下。中文部分可以变成数字ID。英文部分不行
中文部分www.abc.com/123.html 没问题
但是英文部分 www.abc.com/en/123.html 出现404

以下代码 复制到主题的 functions.php下就可以完成将postname 变成 postid 但是我现在遇到的问题是 WPML下英文部分 404 很郁闷!

$posttypes = array(
    'product' => 'product',//Woocommerce产品自定义文章类型
    'portfolio' => 'portfolio'//作品集自定义文章类型
);
add_filter('post_type_link', 'custom_book_link', 1, 3);
function custom_book_link( $link, $post = 0 ){
    global $posttypes;
    if ( in_array( $post->post_type,array_keys($posttypes) ) ){
        return home_url( $posttypes[$post->post_type].'/' . $post->ID .'.html' );
    } else {
        return $link;
    }
}
add_action( 'init', 'custom_book_rewrites_init' );
function custom_book_rewrites_init(){
    global $posttypes;
    foreach( $posttypes as $k => $v ) {
        add_rewrite_rule(
            $v.'/([0-9]+)?.html$',
            'index.php?post_type='.$k.'&p=$matches[1]',
            'top' );
    }
}
本文作者: 老张
本文链接: https://laozhang.me/438.html
版权说明: 本站文章很多都来自互联网,如果侵犯了您的版权请告诉我们,我们会尽快删除,如果您喜欢本文想要转载请保留本站链接,感谢您的支持!
THE END
分享
二维码
< <上一篇
下一篇>>