• Resolved PauloCot

    (@paulocot)


    I am currently using the plugin WP-CommentNavi for comments pagination but whenever a page is clicked it goes to the highest comments page (oldest comments). My comments are purposely displayed newest first and therefore I need the default pagination page to be 1 whenever a link is clicked.

    I notice there is the same default for other pagination plugins too whereby the highest pagination page (ie if there are 5 pages) page 5 is displayed.

    I can’t be sure this is the relevant code to what I am trying to achieve but I feel the answer might lie in here (below). If not, please tell me and disregard this code.

    ### Function: Comment Navigation: Boxed Style Paging
    function wp_commentnavi($before = '', $after = '') {
        global $wp_query;
        $comments_per_page = intval(get_query_var('comments_per_page'));
        $paged = intval(get_query_var('cpage'));
        $commentnavi_options = get_option('commentnavi_options');
        $numcomments = intval($wp_query->comment_count);
        $max_page = intval($wp_query->max_num_comment_pages);
        if(empty($paged) || $paged == 0) {
            $paged = 1;
        }
        $pages_to_show = intval($commentnavi_options['num_pages']);
        $pages_to_show_minus_1 = $pages_to_show-1;
        $half_page_start = floor($pages_to_show_minus_1/2);
        $half_page_end = ceil($pages_to_show_minus_1/2);
        $start_page = $paged - $half_page_start;
        if($start_page <= 0) {
            $start_page = 1;
        }
        $end_page = $paged + $half_page_end;
        if(($end_page - $start_page) != $pages_to_show_minus_1) {
            $end_page = $start_page + $pages_to_show_minus_1;
        }
        if($end_page > $max_page) {
            $start_page = $max_page - $pages_to_show_minus_1;
            $end_page = $max_page;
        }
        if($start_page <= 0) {
            $start_page = 1;
        }
        if($max_page > 1 || intval($commentnavi_options['always_show']) == 1) {
            $pages_text = str_replace("%CURRENT_PAGE%", number_format_i18n($paged), $commentnavi_options['pages_text']);
            $pages_text = str_replace("%TOTAL_PAGES%", number_format_i18n($max_page), $pages_text);
            echo $before.'<div class="wp-commentnavi">'."\n";
            switch(intval($commentnavi_options['style'])) {
                case 1:
                    if(!empty($pages_text)) {
                        echo '<span class="pages">'.$pages_text.'</span>';
                    }
                    if ($start_page >= 2 && $pages_to_show < $max_page) {
                        $first_page_text = str_replace("%TOTAL_PAGES%", number_format_i18n($max_page), $commentnavi_options['first_text']);
                        echo '<a href="'.clean_url(get_comments_pagenum_link()).'" class="first" title="'.$first_page_text.'">'.$first_page_text.'</a>';
                        if(!empty($commentnavi_options['dotleft_text'])) {
                            echo '<span class="extend">'.$commentnavi_options['dotleft_text'].'</span>';
                        }
                    }
                    previous_comments_link($commentnavi_options['prev_text']);
                    for($i = $start_page; $i  <= $end_page; $i++) {
                        if($i == $paged) {
                            $current_page_text = str_replace("%PAGE_NUMBER%", number_format_i18n($i), $commentnavi_options['current_text']);
                            echo '<span class="current">'.$current_page_text.'</span>';
                        } else {
                            $page_text = str_replace("%PAGE_NUMBER%", number_format_i18n($i), $commentnavi_options['page_text']);
                            echo '<a href="'.clean_url(get_comments_pagenum_link($i)).'" class="page" title="'.$page_text.'">'.$page_text.'</a>';
                        }
                    }
                    next_comments_link($commentnavi_options['next_text'], $max_page);
                    if ($end_page < $max_page) {
                        if(!empty($commentnavi_options['dotright_text'])) {
                            echo '<span class="extend">'.$commentnavi_options['dotright_text'].'</span>';
                        }
                        $last_page_text = str_replace("%TOTAL_PAGES%", number_format_i18n($max_page), $commentnavi_options['last_text']);
                        echo '<a href="'.clean_url(get_comments_pagenum_link($max_page)).'" class="last" title="'.$last_page_text.'">'.$last_page_text.'</a>';
                    }
                    break;
                case 2;
                    echo '<form action="'.admin_url('admin.php?page='.plugin_basename(__FILE__)).'" method="get">'."\n";
                    echo '<select size="1" onchange="document.location.href = this.options[this.selectedIndex].value;">'."\n";
                    for($i = 1; $i  <= $max_page; $i++) {
                        $page_num = $i;
                        if($page_num == 1) {
                            $page_num = 0;
                        }
                        if($i == $paged) {
                            $current_page_text = str_replace("%PAGE_NUMBER%", number_format_i18n($i), $commentnavi_options['current_text']);
                            echo '<option value="'.clean_url(get_comments_pagenum_link($page_num)).'" selected="selected" class="current">'.$current_page_text."</option>\n";
                        } else {
                            $page_text = str_replace("%PAGE_NUMBER%", number_format_i18n($i), $commentnavi_options['page_text']);
                            echo '<option value="'.clean_url(get_comments_pagenum_link($page_num)).'">'.$page_text."</option>\n";
                        }
                    }
                    echo "</select>\n";
                    echo "</form>\n";
                    break;
            }
            echo '</div>'.$after."\n";
        }
    }

    In short I need, anytime a page is clicked, for the comments pagination to be on page 1, not the highest page available. Just so you know I have tried the discussion settings on the wordpress dashboard. Nothing on google either!

    Hope I have been clear in my question!

    Thanks in advance, Paul

    http://wordpress.org/extend/plugins/wp-commentnavi/

  • The topic ‘Setting the default pagination page (The first pagination page to automatically’ is closed to new replies.