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

标签 php mysql wordpress search

我已经实现了 Wordpress 搜索:posts_search 过滤器。

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
}

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

即例如

我搜索了:Lorem ipsum dolor sit amet,consectetuer adipiscing elit。 Aenean commodo ligula eget dolor。埃涅马萨。 Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus。 Donec quam felis,ultricies nec,pellentesque eu,pretium quis,sem。 Nulla consequat massa quis enim。 Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu。在 enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo。 Nullam dictum felis eu pede mollis pretium。整数 tincidunt。克拉斯达皮布斯。 Vivamus elementum semper nisi。 Aenean vulputate eleifend Tellus。 Aenean leo ligula, porttitor eu, consequat vitae, eleifend ac, enim。 Aliquam lorem ante,dapibus in,viverra quis,feugiat a,tellus。 Phasellus viverra nulla ut metus varius laoreet。 Quisque rutrum。 Aenean imperdiet。 Etiam ultricies nisi vel augue。 Curabitur ullamcorper ultricies nisi。 Nam eget dui。

结果首页网址 :
https://my.test.com/~user/test/?s=Lorem+ipsum+dolor+sit+amet%2C+consectetuer+adipiscing+elit.+Aenean+commodo+ligula+eget+dolor.+Aenean+massa.+Cum+sociis+natoque+penatibus+et+magnis+dis+parturient+montes%2C+nascetur+ridiculus+mus.+Donec+quam+felis%2C+ultricies+nec%2C+pellentesque+eu%2C+pretium+quis%2C+sem.+Nulla+consequat+massa+quis+enim.+Donec+pede+justo%2C+fringilla+vel%2C+aliquet+nec%2C+vulputate+eget%2C+arcu.+In+enim+justo%2C+rhoncus+ut%2C+imperdiet+a%2C+venenatis+vitae%2C+justo.+Nullam+dictum+felis+eu+pede+mollis+pretium.+Integer+tincidunt.+Cras+dapibus.+Vivamus+elementum+semper+nisi.+Aenean+vulputate+eleifend+tellus.+Aenean+leo+ligula%2C+porttitor+eu%2C+consequat+vitae%2C+eleifend+ac%2C+enim.+Aliquam+lorem+ante%2C+dapibus+in%2C+viverra+quis%2C+feugiat+a%2C+tellus.+Phasellus+viverra+nulla+ut+metus+varius+laoreet.+Quisque+rutrum.+Aenean+imperdiet.+Etiam+ultricies+nisi+vel+augue.+Curabitur+ullamcorper+ultricies+nisi.+Nam+eget+dui .

并记录值:

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":"","分钟":"","小时":"","日":0,"月号":0,"年":0,"w":0,"category_name":"","tag": "","cat":11,"tag_id":"","author":"","author_name":"","feed":"","tb":"","paged":0, "comments_popup":"","meta_key":"","meta_value":"","preview":"","s":"","sentence":"","title":"","字段":"","menu_order":"","category__in":[],"category__not_in":[],"category__and":[],"post__in":[],"post__not_in":[],"post_name__in ":[],"tag__in":[],"tag__not_in":[],"tag__and":[],"tag_slug__in":[],"tag_slug__and":[],"post_parent__in":[],"post_parent__not_in":[],"author__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 ":"","posts_per_page":2,"nopaging":false,"comments_per_page":"50","no_found_rows":false},"tax_query":{"que ries":[],"relation":"AND","queried_terms":[],"primary_table":null,"primary_id_column":null},"meta_query":{"queries":[],"relation": null,"meta_table":null,"meta_id_column":null,"primary_table":null,"primary_id_column":null},"date_query":false,"post_count":0,"current_post":-1,"in_the_loop": false,"comment_count":0,"current_comment":-1,"found_posts":0,"max_num_pages":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_month":false,"is_day":false,"is_time":false,"is_author":false,"is_category":false,"is_tag":false,"is_tax":false,"is_search":false,"is_feed":false,"is_comment_feed":false,"is_trackback":false,"is_home":true,"is_404":false,"is_embed":false,"is_comments_popup":false,"is_paged":false,"is_admin":false,"is_attachment":false,"is_singular":false,"is_robots":false,"is_posts_page":false,"is_post_type_archive":false ,"thumbnails_cached":false,"updated_term_meta_cache":false,"updated_comment_meta_cache":fal瑟}

条款 :“”

搜索查询 :
( ((wp_posts.post_title) LIKE '%%') 或 ((wp_posts.post_content) LIKE '%%') )

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

有人可以帮忙解决这个问题。谢谢

最佳答案

找到解决方案...请引用解决方案:Max size of URL parameters in _GET

我使用以下命令检查了 php 配置:

<?php
  phpinfo();
?>

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

关于php - Wordpress 长搜索字符串返回空查询变量并重定向到主页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38922963/

相关文章:

javascript - Ajax 发送 FormData 并检索多维数组

java - Pubnub 无法在 Google App Engine (GAE) 上运行

python - 如何使用 WP REST API 将类别发布到 Wordpress?

PHP 到 Zebra 打印机

php - 如果在 laravel 中找不到路由,如何显示 404 页面

php - 仅获取登录用户帖子

php - mysql存储过程中的串联

php - 使用 php 编辑/更新行不起作用/ undefined variable

c# - 无法确定 Azure 移动服务 DataObject 中类型的复合主键排序

php - Wordpress functions.php 子主题