我正在使用WooCommerce运行最新的Wordpress
我在网站标题中使用搜索栏时尝试自定义搜索结果。
这是执行常规搜索时结果的显示方式:
http://www.sunshinetrading.com/snowmasters/?s=snow
当我搜索WooCommerce时,这就是 出现的方式。
http://www.sunshinetrading.com/snowmasters/?s=snow&post_type=product
我需要做的是自动将&post_type=product
附加到从标头启动的每个搜索查询中。
我尝试解决方案:
我将此添加到我的子主题functions.php
文件中,尝试附加可以修复所有内容的查询。
// Search WooCommerce
function search_filter($query) {
if ( !is_admin() && $query->is_main_query() ) {
if ($query->is_search) {
echo esc_url( add_query_arg( 'post_type', 'product' ) );
$query->set('post_type', 'product');
}
}
}
add_action('pre_get_posts','search_filter');
但是,当我执行此操作并进行搜索时,在网站继续加载与之前完全相同的页面之前,URL 应该的内容会短暂显示为页面上的文本。
我做错了什么?也许我可以通过编辑.htaccess
文件来解决这个问题。我添加了以下内容......
# REWRITE SNOWMASTERS SEARCH
RedirectMatch 302 snowmasters.com.au/?s=(.*) http://snowmasters.com.au/?s=$1&post_type=product
这应该将http://snowmasters.com.au/?s=snow重定向到http://snowmasters.com.au/?s=snow&post_type=product
但是它没有用?
感谢您的帮助Stack Overflow社区:)
由于
答案 0 :(得分:0)
你有没有试过这个功能?
add_query_arg( 'post_type', 'product', 'http://www.sunshinetrading.com/' );
你也可以在wordpress中注册查询字符串var,如下所示:
function add_query_vars_filter( $qVars ){
$qVars[] = "post_type";
return $qVars;
}
add_filter( 'query_vars', 'add_query_vars_filter' );
这来自于手抄本:https://codex.wordpress.org/Plugin_API/Filter_Reference/query_vars