首页 > 解决方案 > 将 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 查询,如果是这样 - 如何?

标签: phpmysqlajaxsearchwoocommerce

解决方案


您可以使用 wpdb。

global $wpdb;

$data = $wpdb->get_results("SELECT * FROM table");

推荐阅读