WooCommerce нумерация страниц не отображается при создании продуктов с query_posts - PullRequest
0 голосов
/ 03 октября 2018

Я пытаюсь отобразить список отфильтрованных продуктов в отдельном виде.Я расширил файл archive-product.php и заменил функцию woocommerce_product_loop() на функцию woobadge_query_filtered_products(), которая генерирует / устанавливает глобальные query_posts с некоторыми настраиваемыми параметрами.Затем я просто использую функции have_post() и the_post() для вывода продуктов.Я могу правильно отобразить отфильтрованные продукты, и я вручную попытался использовать параметры page в URL и увидел, что подкачка работает нормально. Но проблема в том, что pagination отсутствует в представлении.

Код шаблона ниже:

<?php
/**
 * The Template for displaying product badge archives.
 * This template can be overridden by copying it to yourtheme/woocommerce/woobadge-archive-product.php
 */

defined( 'ABSPATH' ) || exit;

get_header( 'shop' );

/**
 * Hook: woocommerce_before_main_content.
 *
 * @hooked woocommerce_output_content_wrapper - 10 (outputs opening divs for the content)
 * @hooked woocommerce_breadcrumb - 20
 * @hooked WC_Structured_Data::generate_website_data() - 30
 */
do_action( 'woocommerce_before_main_content' );

// Show filter if enabled
if (vp_option('woo_badge_man_opt.pba_show_filters')) {
    echo do_shortcode('[woo_pro_badges_filter_archive_extended]');
}

?>
    <header class="woocommerce-products-header">
        <?php if ( apply_filters( 'woocommerce_show_page_title', true ) ) : ?>
            <h1 class="woocommerce-products-header__title page-title">Products Archive By `<?php the_title(); ?>`</h1>
        <?php endif; ?>

        <?php the_content(); ?>
    </header>
<?php
// Initiate filtered products query
if ( woobadge_query_filtered_products() ) {

    /**
     * Hook: woocommerce_before_shop_loop.
     *
     * @hooked wc_print_notices - 10
     * @hooked woocommerce_result_count - 20
     * @hooked woocommerce_catalog_ordering - 30
     */
    do_action( 'woocommerce_before_shop_loop' );

    woocommerce_product_loop_start();

        while ( have_posts() ) {
            the_post();

            /**
             * Hook: woocommerce_shop_loop.
             *
             * @hooked WC_Structured_Data::generate_product_data() - 10
             */
            do_action( 'woocommerce_shop_loop' );

            wc_get_template_part( 'content', 'product' );
        }

    woocommerce_product_loop_end();

    /**
     * Hook: woocommerce_after_shop_loop.
     *
     * @hooked woocommerce_pagination - 10
     */
    do_action( 'woocommerce_after_shop_loop' );
} else {
    /**
     * Hook: woocommerce_no_products_found.
     *
     * @hooked wc_no_products_found - 10
     */
    do_action( 'woocommerce_no_products_found' );
}

/**
 * Hook: woocommerce_after_main_content.
 *
 * @hooked woocommerce_output_content_wrapper_end - 10 (outputs closing divs for the content)
 */
do_action( 'woocommerce_after_main_content' );

/**
 * Hook: woocommerce_sidebar.
 *
 * @hooked woocommerce_get_sidebar - 10
 */
do_action( 'woocommerce_sidebar' );

get_footer( 'shop' );
?>

Похоже, нумерация woocommerce зависит от woocommerce_product_loopи wc_get_loop_prop.Как я могу заставить представление разбивки на страницы использовать глобальный запрос?

Примечание: Я могу заверить, что сгенерированная функция query_posts by woobadge_query_filtered_products правильно использует параметры подкачки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...