【问题标题】:Wordpress - Customise Search QueryWordpress - 自定义搜索查询
【发布时间】:2017-04-05 16:06:19
【问题描述】:

我正在使用 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应该是在页面上短暂显示为文本。 p>

我做错了什么?也许我可以通过编辑.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 社区的帮助 :)

谢谢

【问题讨论】:

  • 我现在正在尝试让 mod_apache 通过 .htaccess 文件重定向用户。请参阅上面的更改。

标签: php wordpress .htaccess redirect search


【解决方案1】:

你试过这个功能了吗?

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

【讨论】:

  • 谢谢卡洛斯 - 不幸的是,这似乎不起作用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-29
  • 2018-01-08
  • 1970-01-01
  • 2021-01-10
  • 1970-01-01
  • 2023-04-06
  • 1970-01-01
相关资源
最近更新 更多