public static function init()
 {
     if (!self::$initiated) {
         self::$initiated = true;
         require_once RY_CP_PLUGIN_DIR . 'class.ry-cp.update.php';
         add_rewrite_rule('date/([^/]+)/([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/?', 'index.php?post_type=$matches[1]&year=$matches[2]&monthnum=$matches[3]&day=$matches[4]', 'top');
         add_rewrite_rule('date/([^/]+)/([0-9]{4})/([0-9]{1,2})/?', 'index.php?post_type=$matches[1]&year=$matches[2]&monthnum=$matches[3]', 'top');
         add_rewrite_rule('date/([^/]+)/([0-9]{4})/?', 'index.php?post_type=$matches[1]&year=$matches[2]', 'top');
         if (is_admin()) {
             require_once RY_CP_PLUGIN_DIR . 'class.ry-cp.admin.php';
             RY_CP_admin::init();
         }
     }
 }
 public static function update()
 {
     $now_version = RY_CP::get_option('version');
     if ($now_version === FALSE) {
         $now_version = '0.0.0';
     }
     if ($now_version == RY_CP_VERSION) {
         return;
     }
     if (version_compare($now_version, '1.0.0', '<')) {
         RY_CP::update_option('version', '1.0.0');
     }
     if (version_compare($now_version, '1.0.1', '<')) {
         RY_CP::update_option('version', '1.0.1');
     }
     if (version_compare($now_version, '1.0.2', '<')) {
         RY_CP::update_option('version', '1.0.2');
     }
     if (version_compare($now_version, '1.0.3', '<')) {
         RY_CP::update_option('version', '1.0.3');
     }
 }
function get_the_ry_posts_pagination($args = array())
{
    $args = wp_parse_args($args, array('class' => 'pagination', 'end_size' => 2, 'mid_size' => 2, 'show_all' => false, 'show_prev_next' => true, 'show_page_number' => true, 'show_type' => 'html', 'prev_text' => _x('Previous', 'previous post'), 'next_text' => _x('Next', 'next post'), 'screen_reader_text' => __('Posts navigation'), 'before_page_number' => '', 'after_page_number' => ''));
    $archives_list = RY_CP::wp_get_archives($args);
    $total = count($archives_list);
    if ($total < 2) {
        return '';
    }
    $show_all = (bool) $args['show_all'];
    $show_prev_next = (bool) $args['show_prev_next'];
    $show_page_number = (bool) $args['show_page_number'];
    $end_size = (int) $args['end_size'];
    if ($end_size < 1) {
        $end_size = 1;
    }
    $mid_size = (int) $args['mid_size'];
    if ($mid_size < 0) {
        $mid_size = 2;
    }
    $query_year = get_query_var('year');
    $query_month = get_query_var('monthnum');
    $query_day = get_query_var('day');
    $current = 1;
    foreach ($archives_list as $key => $value) {
        if ($value['year'] == $query_year && $value['month'] == $query_month && $value['day'] == $query_day) {
            $current = $key + 1;
            break;
        }
    }
    if ($show_prev_next && 1 < $current) {
        $page_links[] = '<a class="prev page-numbers" href="' . esc_url($archives_list[$current - 2]['url']) . '">' . $args['prev_text'] . '</a>';
    }
    for ($n = 1; $n <= $total; ++$n) {
        if ($n == $current) {
            $page_links[] = '<span class="page-numbers current">' . $args['before_page_number'] . ($show_page_number ? number_format_i18n($n) : $archives_list[$n - 1]['text']) . $args['after_page_number'] . '</span>';
            $dots = true;
        } else {
            if ($show_all || ($n <= $end_size || $current && $n >= $current - $mid_size && $n <= $current + $mid_size || $n > $total - $end_size)) {
                $page_links[] = '<a class="page-numbers" href="' . esc_url($archives_list[$n - 1]['url']) . '">' . $args['before_page_number'] . ($show_page_number ? number_format_i18n($n) : $archives_list[$n - 1]['text']) . $args['after_page_number'] . '</a>';
                $dots = true;
            } elseif ($dots && !$show_all) {
                $page_links[] = '<span class="page-numbers dots">' . __('&hellip;') . '</span>';
                $dots = false;
            }
        }
    }
    if ($show_prev_next && $current < $total) {
        $page_links[] = '<a class="next page-numbers" href="' . esc_url($archives_list[$current]['url']) . '">' . $args['next_text'] . '</a>';
    }
    switch ($args['show_type']) {
        case 'array':
            return $page_links;
        case 'list':
            $links = '<ul class="page-numbers">' . "\n\t" . '<li>' . join('</li>' . "\n\t" . '<li>', $page_links) . '</li>' . "\n" . '</ul>' . "\n";
            break;
        default:
            $links = join("\n", $page_links);
            break;
    }
    $navigation = _navigation_markup($links, $args['class'], $args['screen_reader_text']);
    $navigation = apply_filters('ry_posts_pagination_html', $navigation, $args);
    return $navigation;
}