从商店、产品搜索和 WordPress 搜索中完全隐藏 WooCommerce 产品

您可以通过在后端产品页面上的发布元框的“目录可见性”选项中选择“隐藏”,从商店页面和产品搜索中隐藏 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
  • 如果您有许多产品要隐藏,您可以为这些产品分配一个类别并运行过滤器以将这些产品排除在索引之外。

拓展阅读:

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
欢迎关注我们的微信公众号:WPDAXUE

倡萌

一个文科IT宅男,喜欢折腾WordPress和被它折腾 ^_^

1 条评论

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注