/** * Paginate links * * @since 1.0 * * @param string $name * @param WP_Query $query * @return string */ public static function getPaginateLinks($name, $query = null) { if (!apply_filters('everything_pagination_display', true, $name)) { return ''; } // Paginate links switch ($name) { // Page case 'page': if (!is_singular()) { return ''; } $pagination = wp_link_pages(array('before' => ' ', 'after' => ' ', 'next_or_number' => rtrim(Everything::to('site/page_pagination'), 's'), 'previouspagelink' => '<i class="icon-left-open"></i><span>' . __('Previous page', 'everything') . '</span>', 'nextpagelink' => '<span>' . __('Next page', 'everything') . '</span><i class="icon-right-open"></i>', 'echo' => false)); $pagination = str_replace('<a ', '<a class="button small" ', $pagination); $pagination = preg_replace('/ ([0-9]+) /', ' <span class="button small active">\\1</span> ', $pagination); break; // Comment // Comment case 'comments': if (!is_singular()) { return ''; } $pagination = paginate_comments_links(array('prev_next' => Everything::to('site/comments/pagination') == 'numbers_navigation', 'prev_text' => '<i class="icon-left-open"></i>', 'next_text' => '<i class="icon-right-open"></i>', 'echo' => false)); $pagination = str_replace(array('page-numbers', 'current'), array('button small', 'active'), $pagination); break; // Default // Default default: $args = array('prev_next' => Everything::to('site/pagination') == 'numbers_navigation', 'prev_text' => '<i class="icon-left-open"></i>', 'next_text' => '<i class="icon-right-open"></i>', 'end_size' => 1, 'mid_size' => 2); if ($name == 'woocommerce') { $args['base'] = esc_url(str_replace('99999999', '%#%', remove_query_arg('add-to-cart', htmlspecialchars_decode(get_pagenum_link(99999999))))); } $pagination = \Drone\Func::wpPaginateLinks($args, $query); $pagination = preg_replace_callback('/class=[\'"](?P<dir>prev |next )?page-numbers(?P<current> current)?[\'"]()/i', function ($m) { return "class=\"{$m['dir']}button small" . str_replace('current', 'active', $m['current']) . '"'; }, $pagination); } if (!$pagination) { return ''; } return \Drone\HTML::div()->class('pagination')->add($pagination)->html(); }