如何将每个WooCommerce产品分类重定向至不同页面
实现多WooCommerce产品分类到指定页面的重定向
要同时处理20个分类的定向需求,最简洁易维护的方式是用关联数组存储「分类ID-页面ID」的映射关系,替换原来的单个判断逻辑。后续要加新的对应关系,只需要在数组里补充一行即可,不用重复写判断语句。
修改后的完整代码
function custom_category_template_redirect() { // 判断当前是否为产品分类页面 if ( is_product_category() ) { $category = get_queried_object(); // 定义分类ID到页面ID的映射数组,把你的20组对应关系填在这里 $category_page_mapping = array( 29 => 304, // 示例:分类ID29 → 页面ID304 30 => 305, // 分类ID30 → 页面ID305 31 => 306, // 按这个格式继续补充剩余的对应关系 // ... 剩下的17组都在这里添加 ); // 检查当前分类是否在映射数组中,存在则执行重定向 if ( isset( $category_page_mapping[ $category->term_id ] ) ) { $redirect_page_id = $category_page_mapping[ $category->term_id ]; // 默认是302临时重定向,若需永久重定向,修改为:wp_redirect( get_permalink($redirect_page_id), 301 ); wp_redirect( get_permalink( $redirect_page_id ) ); exit(); } } } add_action( 'template_redirect', 'custom_category_template_redirect' );
关键说明
- 映射数组维护:把你需要的20组「分类ID-目标页面ID」全部添加到
$category_page_mapping数组,格式和示例一致。 - 语法修正:原代码里
$category->term_id == 29,多了个逗号,属于语法错误,修改版已修正。 - 重定向类型:默认
wp_redirect是302临时重定向,如果是永久调整站点结构,建议改成301状态码(搜索引擎会更新索引)。 - 代码放置位置:可以把这段代码添加到WordPress主题的
functions.php文件末尾,或者用自定义代码插件(比如Code Snippets)添加,避免主题更新丢失代码。
内容的提问来源于stack exchange,提问作者DIMITROV92
相关产品推荐
相关产品推荐

