禁用WP搜索,但不禁用产品



我想禁用默认的Wordpress搜索并将其设置为404,这可以通过

来完成
function fb_filter_query( $query, $error = true ) {
if ( is_search() ) {
$query->is_search = false;
$query->query_vars[s] = false;
$query->query[s] = false;
// to error
if ( $error == true )
$query->is_404 = true;
}
}
add_action( 'parse_query', 'fb_filter_query' );
add_filter( 'get_search_form', create_function( '$a', "return null;" ) );

但是我仍然需要能够做一个产品搜索(默认的Woocommerce产品搜索)。但是任何带/的url ?S =和不带&post_type=product应该是404。我如何修改上面的代码?

我尝试了上面提到的代码。

你试过了吗

if ( is_search() ) {
if ( ! empty( $_GET['post_type'] ) && 'product' === $_GET['post_type'] ) {
return;
}
...
}

或者

if ( is_search() ) {
if ( 'product' === $query->post_type ) {
return;
}
...
}

我还没有测试过,但是如果post_type在url中,第一种方法应该可以工作。

最新更新