post_types->is_supported_post_type(); if ($post_type) { $result = [ 'strategy' => 'customizer', 'prefix' => $post_type ]; return $result; } if (function_exists('is_woocommerce')) { if (is_woocommerce()) { $result = [ 'strategy' => 'customizer', 'prefix' => 'woo' ]; return $result; } } $result = [ 'strategy' => 'customizer', 'prefix' => 'blog' ]; return $result; } } /** * Dispaly post pagination. * * @param array $args Pagination config. */ if (! function_exists('blocksy_display_posts_pagination')) { function blocksy_display_posts_pagination( $args = [] ) { $prefix = blocksy_manager()->screen->get_prefix([ 'allowed_prefixes' => [ 'blog', 'woo_categories' ], 'default_prefix' => 'blog' ]); // Don't print empty markup if there's only one page. $args = wp_parse_args( $args, [ 'has_pagination' => get_theme_mod( $prefix . '_has_pagination', 'yes' ) === 'yes', 'pagination_type' => get_theme_mod( $prefix . '_pagination_global_type', 'simple' ), 'last_page_text' => __('No more posts to load', 'blocksy'), 'total_pages' => null, 'current_page' => null, 'format' => null, 'base' => null ] ); if ($prefix === 'woo_categories') { $args['last_page_text'] = __('No more products to load', 'blocksy'); } if (! $args['has_pagination']) { return ''; } if (! $args['total_pages'] || !$args['current_page']) { global $wp_query, $wp_rewrite; $args['current_page'] = $wp_query->get('paged'); $args['total_pages'] = $wp_query->max_num_pages; if (! $args['current_page']) { $args['current_page'] = 1; } } if ($args['total_pages'] <= 1 ) { return ''; } $button_output = ''; if ( $args['pagination_type'] === 'load_more' && intval($args['current_page']) !== intval($args['total_pages']) ) { $label_button = get_theme_mod( $prefix . '_load_more_label', __('Load More', 'blocksy') ); $button_output = '' . $label_button . ''; } if ( $args['pagination_type'] !== 'simple' && $args['pagination_type'] !== 'next_prev' ) { if (intval($args['current_page']) === intval($args['total_pages'])) { return ''; } $button_output = '
' . $button_output; $button_output .= ''; $button_output .= '
' . $args['last_page_text'] . '
'; $button_output .= '
'; } $pagination_class = 'ct-pagination'; $divider_output = ''; $divider = get_theme_mod( $prefix . '_paginationDivider', [ 'width' => 1, 'style' => 'none', 'color' => [ 'color' => 'rgba(224, 229, 235, 0.5)', ] ] ); $numbers_visibility = get_theme_mod( $prefix . '_numbers_visibility', [ 'desktop' => true, 'tablet' => true, 'mobile' => false ] ); $arrows_visibility = get_theme_mod( $prefix . '_arrows_visibility', [ 'desktop' => true, 'tablet' => true, 'mobile' => true ] ); if ( $divider['style'] !== 'none' && $args['pagination_type'] !== 'infinite_scroll' ) { $divider_output = 'data-divider'; } $template = ' '; $paginate_links_args = [ 'mid_size' => 3, 'end_size' => 0, 'type' => 'array', 'total' => $args['total_pages'], 'current' => $args['current_page'], 'prev_text' => '' . __('Prev', 'blocksy'), 'next_text' => __('Next', 'blocksy') . ' ', ]; if ($args['format']) { $paginate_links_args['format'] = $args['format']; } if ($args['base']) { $paginate_links_args['base'] = $args['base']; } $links = paginate_links($paginate_links_args); $arrow_links = ['', '']; $proper_links = []; foreach ($links as $link) { preg_match('/class="[^"]+"/', $link, $matches); if (count($matches) === 0) { continue; } if ( $args['pagination_type'] === 'next_prev' && strpos($matches[0], 'next') === false && strpos($matches[0], 'prev') === false ) { continue; } if ( $args['pagination_type'] === 'simple' && ( strpos($matches[0], 'next') !== false || strpos($matches[0], 'prev') !== false ) ) { $link = str_replace( 'page-numbers', trim('page-numbers ' . blocksy_visibility_classes( $arrows_visibility )), $link ); } if ( strpos($matches[0], 'next') !== false || strpos($matches[0], 'prev') !== false ) { $arrow_links[strpos($matches[0], 'next') !== false ? 1 : 0] = $link; } else { $proper_links[] = $link; } } $proper_links = join("\n", $proper_links); if ($args['pagination_type'] === 'simple') { $proper_links = '
' . $proper_links . '
'; } return sprintf( $template, $arrow_links[0] . $proper_links . $arrow_links[1], $button_output ); } }