【发布时间】:2021-02-10 09:01:53
【问题描述】:
我在设置 Wordpress URL 重定向时遇到了一点问题。
我使用 WooCommerce 设计了一个电子商务网站,我想添加一个搜索栏,让我可以搜索商店中的过滤产品。我添加了默认的 Wordpress 搜索功能,它运行良好,但它显示了整个网站的所有类型的内容(帖子、页面、产品等)。
如果我现在搜索,网址如下:
devsite/?s=searchterm
但是,为了显示商店页面,我需要的 URL 是这样的:
devsite/?s=searchterm&post_type=product
我设法将以下代码拼凑在一起并将其放入我的functions.php 文件中。它几乎可以工作,但是,当我使用搜索词按搜索时,网站会抛出一个错误,说它被重定向了太多次。
function fb_change_search_url_rewrite() {
if ( is_search() && ! empty( $_GET['s'] ) ) {
wp_redirect( home_url( "?s=" ) . urlencode( get_query_var( 's' ) ) . ( "&post_type=product" ) );
exit();
}
}
add_action( 'template_redirect', 'fb_change_search_url_rewrite' );
请有人解释为什么网页会抛出太多重定向错误,以及我可以做些什么来纠正这个问题。我的 PHP 知识正在增长但有限,因此我们将不胜感激。
谢谢。
【问题讨论】:
-
is_search() 将始终返回 true。您不能使用它来进行测试,因为您要转发到一个也将为 is_search() 返回 true 的页面。您正在创建一个无限循环。
标签: php wordpress url redirect