WooCommerce:扩展后台产品列表快速筛选功能
解决方案
你可以用restrict_manage_posts这个钩子,它专门用来在后台自定义文章类型(包括WooCommerce产品)的筛选栏添加自定义内容。配合这个钩子就能直接在产品列表的筛选区域添加一键筛选的链接,无需额外处理复杂逻辑(WooCommerce默认支持通过product_cat参数过滤产品)。
具体实现代码(添加到你的自定义插件中)
add_action('restrict_manage_posts', 'add_one_click_product_category_filters'); function add_one_click_product_category_filters() { // 仅在产品列表页面生效 global $typenow; if ($typenow !== 'product') return; // 替换为你需要的目标分类ID和名称 $target_cats = [ 123 => '深层分类A', // 示例分类ID:123,显示名称:深层分类A 456 => '深层分类B' // 示例分类ID:456,显示名称:深层分类B ]; foreach ($target_cats as $cat_id => $cat_name) { $category = get_term_by('id', $cat_id, 'product_cat'); if (!$category) continue; // 构建筛选链接,沿用WooCommerce原生筛选逻辑 $filter_url = add_query_arg( [ 'product_cat' => $category->slug, 'post_type' => 'product' ], admin_url('edit.php') ); // 输出按钮样式的筛选链接,和后台原生按钮风格统一 echo '<a href="' . esc_url($filter_url) . '" class="button">' . esc_html($cat_name) . '</a>'; } }
关键说明
- 替换代码里的
123、456为你实际需要的分类ID,分类ID可以在WooCommerce后台的分类编辑页面查看(地址栏中的tag_ID参数)。 - 代码输出的链接用了后台默认的
button类,和原生筛选区域的按钮样式一致,不会破坏界面统一性。 - 点击链接后会直接触发WooCommerce原生的分类筛选逻辑,无需额外编写查询处理代码。
内容的提问来源于stack exchange,提问作者inQrt
相关产品推荐
相关产品推荐

