Возникла необходимость создания сайта на wordpress с использованием bootstrap 4. Нашел более менее подходящий шаблон, но с пагинацией там была беда, стал вопрос — как сделать пагинацию, используя bootstrap 4? Поиск дал готовое решение, немного поправил под себя. Эту функцию добавляем в functions.php шаблона:
function bootstrap_pagination( \WP_Query $wp_query = null, $echo = true ) { if ( null === $wp_query ) { global $wp_query; } $pages = paginate_links( [ 'base' => str_replace( 999999999, '%#%', esc_url( get_pagenum_link( 999999999 ) ) ), 'format' => '?paged=%#%', 'current' => max( 1, get_query_var( 'paged' ) ), 'total' => $wp_query->max_num_pages, 'type' => 'array', 'show_all' => false, 'end_size' => 3, 'mid_size' => 1, 'prev_next' => true, 'prev_text' => __( '«' ), 'next_text' => __( '»' ), 'add_args' => false, 'add_fragment' => '' ] ); if ( is_array( $pages ) ) { $pagination = '<div class="pagination mb-5 mt-5"><ul class="pagination">'; foreach ($pages as $page) { $pagination .= '<li class="page-item' . (strpos($page, 'current') !== false ? ' active' : '') . '"> ' . str_replace('page-numbers', 'page-link', $page) . '</li>'; } $pagination .= '</ul></div>'; if ( $echo ) { echo $pagination; } else { return $pagination; } } return null; }
А уже в самом шаблоне (например в файле archive.php) показываем пагинацию, заменив the_posts_navigation(); на bootstrap_pagination();