禁用 WordPress 自带的搜索功能确实可以在一定程度上减少数据库的负载,尤其是当你的网站内容量非常庞大(如百万级文章、页面或自定义内容)时。
【WordPress 原生搜索的性能问题】
WordPress 自带的搜索使用的是 WP_Query + MySQL 的 LIKE 查询,这在数据量大时非常低效;
每次搜索会遍历整张 wp_posts 表,对 post_title 和 post_content 做模糊匹配(如 %关键词%);
无法使用索引加速查询,当文章达到数十万甚至百万级,MySQL 查询会变得非常慢,甚至拖垮服务器。
【禁用 WordPress 自带搜索的作用】
避免搜索机器人(如百度、Google、攻击爬虫)频繁调用 /?s=关键词 消耗数据库资源;
防止用户发起大量低效率的搜索请求;
提升整体性能,尤其是数据库 CPU/IO 压力。
【添加代码(推荐)】
在你的主题的 functions.php 文件中添加以下代码即可:
1 2 3 4 5 6 7 8 9 10 |
function disable_wp_search( $query, $error = true ) { if ( is_search() ) { $query->is_search = false; $query->query_vars['s'] = false; $query->query['s'] = false; if ( $error ) $query->is_404 = true; } } add_action( 'parse_query', 'disable_wp_search' ); |