您可以通过在后端产品页面上的发布元框的“目录可见性”选项中选择“隐藏”,从商店页面和产品搜索中隐藏 WooCommerce 产品。

这很好,它从商店和产品搜索结果中隐藏了广告中的产品,但如果从常规 WordPress 搜索中搜索,该产品仍然可见!

Woocommerce 目录中隐藏产品目录可见性设置为隐藏的产品

WordPress 搜索结果中隐藏产品

如果您使用动态 URL 参数搜索您的站点,https://mydomain.com/?s=Hidden+Woo+Product您隐藏的产品将显示在搜索结果中。

add_action('pre_get_posts', 'wpse_187444_search_query_pre');
/**
 * Hide Catalog Products Only In Search
 * @link https://wordpress.stackexchange.com/questions/283393/hidden-woocommerce-products-still-showing-up-in-search-results/283397
 * @since 1.7.0
 */
function wpse_187444_search_query_pre($query) {

    if ($query->is_search() && $query->is_main_query()) {

        $tax_query = $query->get('tax_query', array());

        $tax_query[] = array(
            'taxonomy' => 'product_visibility',
            'field'    => 'name',
            'terms'    => 'exclude-from-catalog',
            'operator' => 'NOT IN',
        );

        $query->set('tax_query', $tax_query);
    }
}

因此,在上面的代码片段(链接值中的原始来源)中,在主搜索查询上运行了一个 pre_get_posts 过滤器,并且任何设置了 目录隐藏 的产品都不会返回到搜索结果中,在您的主题的functions.php文件中中添加代码。

禁止搜索引擎收录产品

另一个问题是隐藏的产品仍然被谷歌、百度等收录,并通过搜索或站点地图可见。您有多种选择来解决此问题。

  • 您可以在每页的 SEO 插件中手动将每个产品设置为 noindex/nofollow
  • 如果您有许多产品要隐藏,您可以为这些产品分配一个类别并运行过滤器以将这些产品排除在索引之外。

拓展阅读:

  • WordPress 通过代码实现 Ajax 自动完成搜索
  • 搜索引擎蜘蛛统计分析插件 Spider Analyser
  • 10+款改善/增强WordPress搜索功能的插件
  • 修改WordPress的搜索结果网址,使它更适合SEO
  • WordPress 屏蔽恶意搜索,防止被搜索引擎收录恶意搜索结果
  • WordPress SEO:提交网站到百度搜索资源平台
  • WordPress自定义首页、搜索、作者存档、Feed订阅输出的文章类型
  • WordPress百度搜索推送管理插件专业版