使用pre_get_post强制执行Woocommerce主查询

时间:2016-03-30 19:58:02

标签: php ajax wordpress wordpress-plugin woocommerce

我正在尝试使用过滤器构建一个小部件,主要的woocommerce查询显示特定的产品。我正在寻找一种更新查询并重新执行的方法,没有运气。 来自archive-product.php的查询

<?php if ( have_posts() ) : do_action( 'woocommerce_before_shop_loop' ); ?><?php endif; ?>
<?php do_action( 'woocommerce_archive_description' ); ?>

    <?php if ( have_posts() ) : ?>

        <?php woocommerce_product_loop_start(); ?>
            <?php woocommerce_product_subcategories(); ?>

            <?php while ( have_posts() ) : the_post(); ?>
                <?php woocommerce_get_template_part( 'content', 'product' ); ?>
            <?php endwhile; // end of the loop. ?>

        <?php woocommerce_product_loop_end(); ?>

        <?php
            /**
             * woocommerce_after_shop_loop hook
             *
             * @hooked woocommerce_pagination - 10
             */
            do_action( 'woocommerce_after_shop_loop' );
        ?>

我想添加一个像

这样的钩子
 add_action( 'pre_get_posts', 'so_27971630_product_query' );

function so_27971630_product_query( $q ){
    $meta_query = $q->get( 'meta_query' );
    $meta_query[] = array(
        'key' => 'custom_acf_key',
        'value' => 'custom_acf_value',
        'compare' => '='
        );

    $q->set( 'meta_query', $meta_query );
}

并重新执行查询,在带有ajax的div中显示结果。我已经完成了ajax部分而且我一直在重新执行查询

0 个答案:

没有答案