示例#1
0
 /**
  * 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();
 }