我的网站上安装了woocommerce。我需要产品slug为数字
e.g。 /目录/ zapasnye-chasti-K-oborudovaniyu / zakleivayuschie-gruppy / 1024 /
但它返回404页面。我尝试将产品永久链接设置为a hello!
b hello!
c hello!
d hello!
e hello!
并将其添加到functions.php:
/catalog/%product_cat%/%postname%/
完美地适用于数字链接,但它使得置于第一级别类别的产品返回404页面
e.g。 /目录/ vakuumnoe-oborudovanie / vakuumnyy_upakovshchik_a2vac5002 /
虽然子类别中的产品运作良好
e.g。 /目录/ etiketirovochnoe-oborudovanie / oborudovanie-A2 / A2-L120-slim_1 /
我知道它为什么会这样,但我找不到解决方法。这个错误非常受欢迎,但我找不到任何实际的解决方案。我所需要的只是让产品中的数字slug显示所需的页面。有没有人有任何想法?
答案 0 :(得分:0)
找到解决方案:
function do_rewrite(){
global $wp_rewrite;
$wp_rewrite->rewritereplace[16] = '(.+)';
add_rewrite_tag('%product%', '(.+)');
$post_type = 'product';
add_rewrite_tag( "%product_num%", '(.+)', "post_type=$post_type&product=" );
$permastruct = "catalog/(.+)/%product_num%"; //for permalink structure: /catalog/%product_cat%/
$args = array(
'with_front' => true,
'paged' => true,
'ep_mask' => EP_NONE,
'feed' => false,
'forcomments' => false,
'walk_dirs' => true,
'endpoints' => false,
);
add_permastruct( $post_type, $permastruct, $args );
flush_rewrite_rules();//comment this after first run
}
add_action('init', 'do_rewrite',1,0);