如何让WordPress WPSC实时搜索显示超过20个商品?
调整WPSC实时搜索结果数量的解决方案
优先方案:用过滤器修改(不碰插件核心代码)
WPSC的实时搜索结果数量由后台查询参数控制,直接在主题functions.php里添加代码就能修改,这种方法不会因为插件更新失效,推荐使用:
方案A:通用WP查询过滤器
// 调整WPSC实时搜索返回的商品数量 add_action('pre_get_posts', 'custom_wpsc_live_search_result_count'); function custom_wpsc_live_search_result_count($query) { // 只对WPSC的实时搜索AJAX请求生效 if (isset($_POST['action']) && $_POST['action'] === 'wpsc_ajax_autocomplete' && $query->is_main_query()) { // 这里设置你需要的数量:填-1返回全部匹配商品,示例设为40 $query->set('posts_per_page', 40); } return $query; }
方案B:WPSC专属过滤器
如果上面的代码没效果,试试WPSC官方提供的专属钩子:
// 用WPSC专属钩子调整实时搜索结果数 add_filter('wpsc_autocomplete_posts_per_page', 'custom_wpsc_autocomplete_result_limit'); function custom_wpsc_autocomplete_result_limit($default_limit) { // 替换成你需要的数量,-1代表返回全部匹配商品 return 40; }
备用方案:修改插件核心代码(不推荐)
要是过滤器都不生效,只能修改插件的AJAX处理文件,但插件更新后修改会被重置,需注意:
- 找到WP e-Commerce插件目录下的
wpsc-includes/ajax.php文件 - 定位到
wpsc_ajax_autocomplete函数里的WP_Query参数,找到posts_per_page => 20这一行 - 将20修改为40或者-1即可
测试验证
添加完代码后清空网站缓存,再测试实时搜索,查看结果数量是否调整为设置的数值。
内容的提问来源于stack exchange,提问作者Andy
相关产品推荐
相关产品推荐

