从商店、产品搜索和 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
  • 如果您有许多产品要隐藏,您可以为这些产品分配一个类别并运行过滤器以将这些产品排除在索引之外。

拓展阅读:

来源:

https://www.wpdaxue.com/completely-hide-woocommerce-products-from-stores-product.html

微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?