Задать вопрос
@wanderbit

Пагинация списка товаров woocommerce шорткодом?

Сайт на wordpress .Установлен плагин visual composer woocommerce. На странице созданы вкладки подкатегорий товаров.В каждой из них выводятся товары шорткодом.С помощью функции сделал пагинацию ,Но при переходе на страницы товаров шорткода открывается всегда первая вкладка таба.Как сделать чтобы при переходе оставалась та же самая вкладка?

http://труба-полиэтилен.рф/product-category/fiting...
http://труба-полиэтилен.рф/product-category/fiting... откывается а должно http://труба-полиэтилен.рф/product-category/fiting...

/* Пагинация для шорткодов Woocommerce */

add_action( 'pre_get_posts', 'kli_wc_pre_get_posts_query' );
function kli_wc_pre_get_posts_query( $query ) {
global $woocommerce_loop;

if ( is_main_query() && ( $query->query['post_type'] == 'product' ) || ! isset( $query->query['post_type'] ) ){

if ( isset($query->query['paged']) ){
$woocommerce_loop['paged'] = $query->query['paged'];
}
}

if ( ! $query->is_post_type_archive || $query->query['post_type'] !== 'product' ){
return;
}

$query->is_paged = true;
$query->query['paged'] = $woocommerce_loop['paged'];
$query->query_vars['paged'] = $woocommerce_loop['paged'];
}

add_action( 'loop_end', 'kli_query_loop_end' );
function kli_query_loop_end( $query ) {

if ( ! $query->is_post_type_archive || $query->query['post_type'] !== 'product' ){
return;
}

global $woocommerce_loop;
$woocommerce_loop['pagination']['paged'] = $woocommerce_loop['paged'];
$woocommerce_loop['pagination']['found_posts'] = $query->found_posts;
$woocommerce_loop['pagination']['max_num_pages'] = $query->max_num_pages;
$woocommerce_loop['pagination']['post_count'] = $query->post_count;
$woocommerce_loop['pagination']['current_post'] = $query->current_post;

}

add_action( 'woocommerce_after_template_part', 'kli_wc_shortcode_pagination' );
function kli_wc_shortcode_pagination( $template_name ) {

if ( ! ( $template_name === 'loop/loop-end.php' && is_page() ) ){
return;
}

global $wp_query, $woocommerce_loop;

if ( ! isset( $woocommerce_loop['pagination'] ) ){
return;
}

$wp_query->query_vars['paged'] = $woocommerce_loop['pagination']['paged'];
$wp_query->query['paged'] = $woocommerce_loop['pagination']['paged'];
$wp_query->max_num_pages = $woocommerce_loop['pagination']['max_num_pages'];
$wp_query->found_posts = $woocommerce_loop['pagination']['found_posts'];
$wp_query->post_count = $woocommerce_loop['pagination']['post_count'];
$wp_query->current_post = $woocommerce_loop['pagination']['current_post'];

kli_woocommerce_pagination();
}

remove_action('woocommerce_after_shop_loop', 'woocommerce_pagination', 10);
add_action( 'woocommerce_after_shop_loop', 'kli_woocommerce_pagination', 10);
function kli_woocommerce_pagination() {
woocommerce_pagination();
}
  • Вопрос задан
  • 1222 просмотра
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
wfantastic
@wfantastic
увлечен wordpress
нужно указать информацию о текущей вкладке в url адресе,
для этого надо изменить свои шорт коды и включить информацию о вкладке в которой они находятся.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы