Php WordPress自定义搜索表单(WooCommerce产品类别)

Php WordPress自定义搜索表单(WooCommerce产品类别),php,wordpress,woocommerce,Php,Wordpress,Woocommerce,有人能帮忙吗 为什么这不起作用 <form role="search" method="get" action="/"> <input type="text" name="s" placeholder="Search"> <input type="hidden" name="post_type" value="product"> <input type="hidden" value="product_cat" name="the-jo

有人能帮忙吗

为什么这不起作用

<form role="search" method="get" action="/">
    <input type="text" name="s" placeholder="Search">
    <input type="hidden" name="post_type" value="product">
  <input type="hidden" value="product_cat" name="the-journal-of-stained-glass" />
    <input type="submit" value="Go">
</form>


它“应该”过滤掉只在指定的产品类别中的搜索结果,但它不是。

您好,您在输入字段中的名称位置的代码中弄错了,您提供了该类别的值,在您提供名称的值位置。请尝试以下方法

<form role="search" method="get" action="/">
    <input type="text" name="s" placeholder="Search">
    <input type="hidden" name="post_type" value="product">
  <input type="hidden" name="product_cat" value="the-journal-of-stained-glass" />
    <input type="submit" value="Go">
</form>

您好,詹姆斯,谢谢您的帮助,但不幸的是,这并没有帮助解决问题。您是否在主题的functions.php文件中添加了编码?有任何特定的编码吗?我这里没有与搜索函数相关的内容。我添加了functions.php的代码,也就是请用当前的分类法替换您的分类法。谢谢,但这给了我以下错误警告:mysqli_real_escape_string()希望参数2为string,第1102行的/homepages/11/d741879078/htdocs/wp includes/wp-db.php中给出的数组
function wc_hide_selected_terms( $terms, $taxonomies, $args ) {
    $new_terms = array();
    if ( in_array( 'product_cat', $taxonomies ) && !is_admin() && is_shop() ) {
        foreach ( $terms as $key => $term ) {
              if ( ! in_array( $term->slug, array( 'uncategorized' ) ) ) {
                $new_terms[] = $term;
              }
        }
        $terms = $new_terms;
    }
    return $terms;
}
add_filter( 'get_terms', 'wc_hide_selected_terms', 10, 3 );

function advanced_search_query($query) {

        if($query->is_search()) {
            // category terms search.
            if (isset($_GET['product_cat']) && !empty($_GET['product_cat'])) {
                $query->set('tax_query', array(array(
                    'taxonomy' => 'product_cat',
                    'field' => 'slug',
                    'terms' => $_GET['product_cat']) 
                ));
            }    
        }
        return $query;
    }
    add_action('pre_get_posts', 'advanced_search_query', 1000);