php - 将 posts_per_page 更改为 WooCommerce AJAX 实时搜索的 MySQL 查询
问题描述
使用 posts_per_page 可能不是最好的选择,我想知道是否应该将其更改为 MySQL 查询以更快并减少对站点/服务器的压力?
这是为 WooCommerce 构建实时产品搜索的过程。
这是代码:
add_action( 'wp_ajax_data_fetch' , 'data_fetch' );
add_action( 'wp_ajax_nopriv_data_fetch', 'data_fetch' );
function data_fetch() {
$post_search_query = new WP_Query( array( 'posts_per_page' => -1, 's' => esc_attr( $_POST['search_keyword'] ), 'post_type' => 'product' ) );
if( $post_search_query->have_posts() ) :
while( $post_search_query->have_posts() ): $post_search_query->the_post(); ?>
<h5><a href="<?php echo esc_url( post_permalink() ); ?>"><?php the_title();?></a></h5>
<span class="live-search-post-excerpt"><?php the_excerpt(); ?></span>
<?php endwhile;
wp_reset_postdata();
endif;
die();
}
我想知道是否有办法改变这一点:
$post_search_query = new WP_Query( array( 'posts_per_page' => -1, 's' => esc_attr( $_POST['search_keyword'] ), 'post_type' => 'product' ) );
进入 SQL 查询,如果是这样 - 如何?
解决方案
您可以使用 wpdb。
global $wpdb;
$data = $wpdb->get_results("SELECT * FROM table");
推荐阅读
- graph - 拓扑排序解决方案验证
- java - 在 Eclipse IDE 中使用 org.apache.commons.collections 的 ClassNotFoundException 问题
- javascript - TypeScript HTML 按钮“文件不包含在任何 tsconfig.json 中” Intellij
- google-analytics - 谷歌分析中每个用户 ID 的页面访问和持续时间
- angular - 发生未处理的异常:ENOENT: 没有这样的文件或目录,lstat 'E\CoffeShop\node_modules' 有关详细信息,请参阅“C:\aangular-errors.log”
- javascript - 如果在同一日期,则隐藏元素,并且仅使用 ngIf 显示一次
- powershell - 如何让 Powershell 的 Import-Csv 正确导入空格
- class - SwiftUi 初始化一个类中的主结构
- java - 具有复杂 HashMap 结构的 GSON 到 Json
- java - 如何使用@Async在spring boot中为一种方法创建多个线程池