今天把主题升级了一下,发现Woocommerce产品页面(404. Not Found)错误,摸索大半天,确定是主题代码丢失了,立修复贴,方便遇到同样问题的朋友参考。
把以下代码放在wordpress 主题文件的function.php 内,效果会变成:
产品页面的URL效果就会变成:/p/sale-id
如果要改成其它样式,只需要把下面代码内的p/sale-的两处地方调整一下就可以了!
/*
* Add ID to product link
*
*/add_filter('post_type_link', 'wpse33551_post_type_link', 1, 3);function wpse33551_post_type_link( $link, $post = 0 ){
if ( $post->post_type == 'product' ){
return home_url( 'p/sale-' . $post->ID );
} else {
return $link;
}
}add_action( 'init', 'wpse33551_rewrites_init' );function wpse33551_rewrites_init(){
add_rewrite_rule(
'p/sale-([0-9]+)?$',
'index.php?post_type=product&p=$matches[1]',
'top' );
}
如果还是不能解决,请尝试使用第二种方法,可能是伪静态页面没有设置的原因,进入宝塔后台,进入网站管理——网站设置——选择伪静态——下拉选择wordpress _ 保存即可。