隐藏的WooCommerce产品仍在搜索结果中显示

时间:2017-10-19 作者:Abby G.

我对php编辑非常陌生,但我正在努力学习。在目录可见性下设置为“隐藏”的My woocommerce产品仍显示在搜索结果下。如何在搜索结果中隐藏产品?我找到了这条线(WP_Query: Exclude hidden products from WooCommerce product list) 并尝试将线程底部提到的以下代码(我正在使用Woocommerce 3.2.1)添加到我的子主题函数中。php文件。它给了我死亡的白色屏幕和这个错误:

分析错误:语法错误,意外“=>”(T\\u双箭头)。

<?php
/*
Code to remove hidden woocommerce products from being displayed in a site search
*/
\'tax_query\' => array(
                  array(
                        \'taxonomy\' => \'product_visibility\',
                        \'field\'    => \'name\',
                        \'terms\'    => \'exclude-from-catalog\',
                        \'operator\' => \'NOT IN\',

                  )
              ) 
感谢帮助我做错事。谢谢

2 个回复
SO网友:Milan Petrovic

此代码不能添加到您想要的任何地方,也不能添加到函数中。php或类似的任何其他php文件。这是用于创建WordPress查询对象的数组的元素。必须通过WP\\u Query类或get\\u posts和Query\\u posts函数添加,或通过过滤器修改主页查询。

但是,如果不了解搜索模板的工作原理,就无法提供这方面的帮助。如果使用经典搜索模板,这是将应用需要使用的分类过滤器的代码,您可以将其添加到函数中。php:

add_action(\'pre_get_posts\', \'wpse_187444_search_query_pre\');

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);
    }
}
但是,这可能不适合您,这取决于您的搜索模板和查询搜索结果的方式。

SO网友:Meloman

对我来说唯一可行的解决方案(我尝试了所有代码片段组合),就是安装一个名为search-exclude.

enter image description here

它对我的Woocommerce 在线商店产品。

结束

相关推荐