WordPress:is_serch()在自定义模板中返回false

jaxagkaj  于 2023-10-17  发布在  WordPress
关注(0)|答案(1)|浏览(135)

我用这个钩子:

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。你有什么主意吗?

3ks5zfa0

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

相关问题