我用这个钩子:
add_filter('template_include', 'custom_search_template');
function custom_search_template($template) {
// Check if the 'type' parameter is present in the URL
if (isset($_GET['type']) || isset($_GET['teacher']) ) {
// Use 'search.php' as the template
$new_template = locate_template(array('search.php'));
if (!empty($new_template)) {
return $new_template;
}
}
return $template;
}
因此,当用户访问mywebsite.com/type/blablabla网站使用search.php文件。但奇怪的是,is_search()返回false。你有什么主意吗?
1条答案
按热度按时间3ks5zfa01#
在您提供的URL“mywebsite.com/type=blablabla"中,您是这样传递的吗:
/type=blabala
或者像这样:/?type=blablbal
?因为如果你是按照你在问题中所说的第一种方式来做的,那么这就是为什么它会返回false,因为在术语
type
之前添加?
将使用它作为参数并正确工作。相反,它会将其视为URL中的路径,并且您在函数if (isset($_GET['type']))
中的第一次检查将返回false,因为没有参数传递给URL。另外,如果你不确定的东西,只是尝试和日志信息到控制台使用WordPress提供的
error_log
功能,并在您的网站上启用浏览器模式。This might help you。