WordPress 多个 Ajax 搜索 URL

WordPress multiple Ajax Search URLs

我正在使用 typeahead 来增强我的 woocommerce 网站上的搜索。因此,我想为不同的 FE-Display 拆分产品和内容结果。

我正在使用 wp-admin/admin-ajax.php?action=ajax_search&fn=get_ajax_search&terms=[searchterm] 来接收结果。我试图添加类似“&posttype=post”或“&posttype=product”或“&posttype=page”的内容以获得不同的结果。

不过好像对结果没有影响。我无法限制输入字段中的搜索结果 post 类型,因为我需要所有这 3 种结果类型(可能还有更多)。是否有机会获得限于 post 类型的不同 ajax- 搜索 URL?

提前致谢

感谢@Bijal Patel,我找到了解决方案:

我添加了一个新操作 "shop_search" 并组成了几个不同的搜索查询,可以使用 &pts=posttype 调用 所以我可以进行不同的搜索,例如 ?action=shop_search&pts=product&terms=test 在函数中

add_action( 'wp_ajax_nopriv_shop_search', 'shop_search' );
add_action( 'wp_ajax_shop_search', 'shop_search' );

然后就像

function shop_search() {
if ( isset( $_REQUEST['pts'] ) && 'product' == $_REQUEST['pts'] ) { //pts = post type search // looking for Posttype = product
    $product_query = new WP_Query( array(
        's' => $_REQUEST['terms'],
        'post_type' => 'product', // Posttype goes here
        //'posts_per_page' => 10,
        'no_found_rows' => true,
    ) );

    $presults = array( );

    if ( $product_query->get_posts() ) {

        foreach ( $product_query->get_posts() as $the_post ) {

            Do STUFF 

            $presults[] = array(
                'lorem' => $ipsum,
                'foo' => $bar,
            );
        }

    } else {
        $presults[] = __( 'Sorry. No results match your search.', 'wp-typeahead' );
    }

    wp_reset_postdata();
    echo json_encode( $presults );
}

可以像...一样无穷无尽

if ( isset( $_REQUEST['pts'] ) && 'post' == $_REQUEST['pts'] ) { //pts = post type search // Posttype = post
    $product_query = new WP_Query( array(
        's' => $_REQUEST['terms'],
        'post_type' => 'post', // posttype goes here
        //'posts_per_page' => 10,
        'no_found_rows' => true,
    ) );

   $results = array( );
// see above for what to do next
// And Close it all afterwards
    die(); }

对于我必须查询的所有帖子类型,这可能不是最快的解决方案。如果您只需要在 2 或 3 个 posttypes 之间分开,或多或少就是这样。 使用以下方式调用搜索结果:mysite.com/wp-admin/admin-ajax.php?action=shop_search&pts=product&terms=test

所以如果有人知道如何加快速度,请告诉我! 谢谢你。特别感谢 Bijal - 你让我度过了一个愉快的周末!