当前位置: 首页 > 知识库问答 >
问题:

Wordpress长搜索字符串返回空查询变量并重定向到主页

公孙芷阳
2023-03-14

我已经实现了Wordpress搜索:posts\u搜索过滤器。

add_filter( 'posts_search', 'extend_search', 500, 2 );

function extend_search($search, &$wp_query) {
        error_log(json_encode($wp_query)); 
        $terms = $wp_query->query_vars[ 's' ];
        error_log(json_encode($terms));
        .
        .
        .
        return $search
}

问题:当我搜索很长的文本时,我会被重定向到主页。

i、 e.例如

我搜索:
洛雷姆·伊普苏姆·多洛尔·西特·阿梅特,他是一位杰出的领袖。埃尼安·康莫多·利古拉·埃吉特·多洛。埃尼安·马萨。在自然社会中,因怀孕而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯。Donec quam felis、ultricies nec、pellentesque eu、pretium quis、sem。这是一个很好的例子。Donec pede justo、fringilla vel、aliquet nec、vulputate eget、arcu。在埃尼姆·胡斯托、朗卡斯·乌特、伊佩拉、维尼那提斯·维塔、胡斯托。猫咪的口头禅是一种很好的口头禅。整数tincidunt。克拉斯·达皮布斯。万岁。埃尼安·沃普塔特·埃利芬德·泰勒斯。埃尼安·利古拉、波特提托·欧盟、康塞卡特·维泰、埃利芬德·ac、埃尼姆。阿利奎姆·勒姆·安特、达比布斯·安特、维韦拉·奎斯、费吉亚·阿泰勒斯。长生不老不老。奎斯克·鲁特罗姆。埃涅亚饮食。奥古斯一世。乌兰科乌尔里西斯库拉比图尔酒店。南乙对。

结果网页网址:https://my.test.com/~user/test/?s=Lorem ipsum dolor sit amet,连续的发展精英。埃尼安·康莫多·利古拉·埃吉特·多洛。埃尼安·马萨。在自然社会中,因怀孕而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯,因饥饿而死亡的蒙特斯。Donec quam felis、ultricies nec、pellentesque eu、pretium quis、sem。这是一个很好的例子。Donec pede justo、fringilla vel、aliquet nec、vulputate eget、arcu。在埃尼姆·胡斯托、朗卡斯·乌特、伊佩拉、维尼那提斯·维塔、胡斯托。猫咪的口头禅是一种很好的口头禅。整数tincidunt。克拉斯·达皮布斯。万岁。埃尼安·沃普塔特·埃利芬德·泰勒斯。埃尼安·利古拉、波特提托·欧盟、康塞卡特·维泰、埃利芬德·ac、埃尼姆。阿利奎姆·勒姆·安特、达比布斯·安特、维韦拉·奎斯、费吉亚·阿泰勒斯。长生不老不老。奎斯克·鲁特罗姆。埃涅亚饮食。奥古斯一世。乌兰科乌尔里西斯库拉比图尔酒店。南乙对。

和记录的值:

wp_query:{“query”:[],“query_vars”:{“error”:“m”:“p”:0,“post_parent”:“subpost”:“subpost_id”:“attachment”:“attachment_id”:0,“name”:“static”:“pagename”:“page_id”:0,“second”:“minute”:“hour”:“day”:0,“monthnum”:0,“year”:0,“category_name”:“tag_id”:“tag”:“tag”:“author”:“author”:“author”:“author”:“author”:“feed”;“feed”,“tb”:“tb”是这样的,“网页”是这样的。在0,“网页”是这样的。在0月的“tb”是这样的。“tb”是这样的,“s”是这样的。“s”的“s”是这样的。以下的“s”是这样的。。“网页”是这样的。在10个网页中,10月的网页是这样的。10月的“tb是这样的“tb”是这样的。“tb”是这样的。以下的。句子是“tb”是:“tb”的,”的。以下的,”句子是“tb是“tb是“tb是,”的。以下的。“tb是这样的,”是“tb是“tb的,”是“tb是“tb的,”是“tb的。以下的,”是“tb是指,”是“tb的,”是“tb的,”是“tb的,”是“tb的,”是“tb的。以下的,”是“tb,是“tb的,”是“tb的。以下的,”是,是“tb的,”是“tb的,”是“tb。和“:[],”在“:[],“post_parent_uu not_in”:[],“author_not_in”:[],“author_not_in”:[],“ignore_sticky_posts”:false,“suppress_filters”:false,“cache_results”:true,“update_post_term_cache”:true,“update_post_meta_cache”:true,“post_type”:“,“post_每页帖子”:2,“nopaging”:false,“comments”;“comments”;“50”,“no_每页评论”;“no_found”;“false”;“false”;“false”;“false”;“false”;“Fals,“查询条件”:[],“主表”:null,“主id列”:null},“元查询”:{“查询”:[],“关系”:null,“元表”:null,“元id列”:null,“主表”:null,“主id列”:null},“日期查询”:false,“帖子计数”:0,“当前帖子”:-1,“在帖子循环中”:false,“评论计数”:0,“当前评论”:-1,“找到帖子”:0,“最大页数”:0,“max_num_comment_pages:0,“is_single”:false,“is_preview”:false,“is_page”:false,“is_archive”:false,“is_date”:false,“is_year”:false,“is_day”:false,“is_author”:false,“is_category”:false,“is_tag”:false,“is_tax”:false,“is_search”:false,“is_评论_feed”:false,“is_trackback”:false,“is_home”:true,“is_home”:true,“is_404;”404;:false,“is_embed”:false,“is_comments\u popup”:false,“is_paged”:false,“is_attachment”:false,“is_singular”:false,“is_posts\u page”:false,“is_post\u type\u archive”:false,“thumbnails\u cached\u term\u meta\u cache”:false,“updated\u comment\u meta\u cache”:false}

条款:""

搜索查询:((wp_posts.post_title)如“%”或((wp_posts.post_content)如“%”)

所以,对于长搜索字符串,查询变量为空,我将被重定向到带有查询变量的主页:

 is_home = true
 is_search = false

有人能帮忙解决这个问题吗?谢啦

共有1个答案

贺方伟
2023-03-14

找到了解决方案。。。请参阅_GET中URL参数的最大大小的解决方案

我使用以下方法检查了php配置:

<?php
  phpinfo();
?>

并找到了将GET参数设置为512个字符的suhosin扩展变量:

suhosin.get.max_value_length    512
 类似资料:
  • 下面的lucene查询返回空字符串请帮忙,提前谢谢

  • 问题内容: 我想知道上面的代码是否可用于检查变量是否为null或为空。 问题答案: 是的,该代码正是这样做的。 您还可以使用: 编辑: 使用添加的值信息,您需要: 一个值不能包含值。

  • 问题内容: 所有人都希望使用过滤的查询,其中结果应包含来自“ query_string”和来自“ term-filter”的数据。 预期结果是: 所有带有topic_id的字母“ a”或“”的博客记录均为10。 即使其描述为空白/空,也会记录topic_id为10的其余记录。 因此,最终结果应该是-具有较高分数的匹配记录,并且应该位于顶部,然后才是与过滤器中的“ topic_id”匹配的记录。 问

  • 实现此功能的推荐方法是什么?注意,我使用的是查询字符串查询。

  • 我试图弄清楚为什么我的查询没有运行,如果运行了;为什么它不返回任何信息。我在wordpress multisite上运行这个查询是基于一个插入,通过所有网络站点并检索主站点中的所有帖子,这部分工作很好。我创建了一些代码,将两个变量合并为一个变量,以创建一个表名,如果我回显该变量,它将正确显示表名,但当我在查询中插入相同的变量时,注意到甚至会发生表已经存在于DB中的情况。代码如下: 提前道谢。

  • 问题内容: ` 是我的jquery变量,我想在其中添加字符串文本。但要继续说下去。 问题答案: 您无法从异步调用返回数据,则应该在成功回调函数中进行操作。由于在数据到达时会调用回调,但是您要在此之前返回数据,所以您会得到。