Archived topic
How to show comment pagination
37 replies · Started by Benjamin on April 29, 2020
Did you follow the steps Leo provided in this doc?
https://www.wpbeginner.com/wp-tutorials/how-to-paginate-comments-in-wordpress/
Yes, the only difference is I have the break at 20 comments.
Also...why I am seeeing a link to Older Comments at the BEGINNING of the comments.
Do you know that the 2 lines you are supposed to replace appear TWICE in the original comments.php file? Lines 85 and 86 also on lines 112 and 113.
Hi Mike,
Yes, there are two by default.
If you wish to remove the first one, you may do so by removing this(line 81):
if ( get_comment_pages_count() > 1 && get_option( 'page_comments' ) ) :
and this(lines 83-88):
<nav id="comment-nav-above" class="comment-navigation" role="navigation">
<h2 class="screen-reader-text"><?php esc_html_e( 'Comment navigation', 'generatepress' ); ?></h2>
<div class="nav-previous"><?php previous_comments_link( __( '← Older Comments', 'generatepress' ) ); ?></div>
<div class="nav-next"><?php next_comments_link( __( 'Newer Comments →', 'generatepress' ) ); ?></div>
</nav><!-- #comment-nav-above -->
<?php endif; ?>
Take note that there should be a ?> after do_action( 'generate_below_comments_title' );
To see if changes you make on the new comments.php file are taking effect, do this first and let us know how it goes.
Doesn't work. Older Comments still show up on the top.
`<?php
/**
* The template for displaying Comments.
*
* The area of the page that contains both current comments
* and the comment form. The actual display of comments is
* handled by a callback to generate_comment() which is
* located in the inc/template-tags.php file.
*
* @package GeneratePress
*/
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly.
}
/*
* If the current post is protected by a password and
* the visitor has not yet entered the password we will
* return early without loading the comments.
*/
if ( post_password_required() ) {
return;
}
/**
* generate_before_comments hook.
*
* @since 0.1
*/
do_action( 'generate_before_comments' );
?>
<div id="comments">
<?php
/**
* generate_inside_comments hook.
*
* @since 1.3.47
*/
do_action( 'generate_inside_comments' );
if ( have_comments() ) :
$comments_number = get_comments_number();
$comments_title = apply_filters(
'generate_comment_form_title',
sprintf(
esc_html(
/* translators: 1: number of comments, 2: post title */
_nx(
'%1$s thought on “%2$s”',
'%1$s thoughts on “%2$s”',
$comments_number,
'comments title',
'generatepress'
)
),
number_format_i18n( $comments_number ),
get_the_title()
)
);
// phpcs:ignore -- Title escaped in output.
echo apply_filters(
'generate_comments_title_output',
sprintf(
'<h3 class="comments-title">%s</h3>',
esc_html( $comments_title )
),
$comments_title,
$comments_number
);
/**
* generate_below_comments_title hook.
*
* @since 0.1
*/
do_action( 'generate_below_comments_title' ); ?>
<ol class="comment-list">
<?php
/*
* Loop through and list the comments. Tell wp_list_comments()
* to use generate_comment() to format the comments.
* If you want to override this in a child theme, then you can
* define generate_comment() and that will be used instead.
* See generate_comment() in inc/template-tags.php for more.
*/
wp_list_comments(
array(
'callback' => 'generate_comment',
)
);
?>
</ol><!-- .comment-list -->
<?php
if ( get_comment_pages_count() > 1 && get_option( 'page_comments' ) ) :
?>
<nav id="comment-nav-below" class="comment-navigation" role="navigation">
<h2 class="screen-reader-text"><?php esc_html_e( 'Comment navigation', 'generatepress' ); ?></h2>
<div class="nav-previous"><?php previous_comments_link( __( '← Older Comments', 'generatepress' ) ); ?></div>
<div class="nav-next"><?php next_comments_link( __( 'Newer Comments →', 'generatepress' ) ); ?></div>
</nav><!-- #comment-nav-below -->
<?php
endif;
endif;
// phpcs:ignore WordPress.PHP.StrictComparisons.LooseComparison
if ( ! comments_open() && '0' != get_comments_number() && post_type_supports( get_post_type(), 'comments' ) ) :
?>
<p class="no-comments"><?php esc_html_e( 'Comments are closed.', 'generatepress' ); ?></p>
<?php
endif;
comment_form();
?>
</div><!-- #comments -->
Any ideas?
It’s likely that the new file isn’t being seen by WordPress.
Do you already have the Child theme activated?
Can you also make sure that the new file is named exactly comments.php and it is located inside the Child theme’s folder?
Kindly let us know. :)
Child theme is activated. Been using child themes since 2006 :) Double checked the spelling and the location. Interesting though, go back and read what another support staff said. He said COMMENT singular, not plural. Will start from the beginning...again.
Okay, so figured something out. I edited the file as before, put it in the child theme folder, and no luck. For the hell of it I copied it to the ACTUAL- theme folder and it worked. Obviously not a solution, but getting there.
I still need to get rid of the pagination from the TOP of the comments page. Only want it at the bottom. Will try the fix I was given, and get back to you.
BTW the child theme I used is the one FOR generatepress that you can download.
Noted. Must be a typo. The file name in the repository is comments.php: https://github.com/tomusborne/generatepress/blob/master/comments.php
Glad it's working now. Kindly let us know how it goes. :)
So I deactivate the Child theme (One I downloaded from SG), activated GP, downloaded and then installed fresh copy of child theme, all is well. Put edited comments.php file in child theme, all is well. Replace the comments.php file in the theme...the ORIGINAL fresh version from the latest versaion oif GP...same thing. ONLY works when the comments.php file is being d directly from the theme. Obviously this is not a solution unless I don't ever update, or remember to replace it every time.
Something wrong here.
Have a look right now...exactly how I want i, text changed etc. :)
I see. Can you try making the modifications in the comments.php file of the Child theme and then, revert the changes you’ve made in the parent file. Then, activate the child theme. Then try clearing all caching mechanisms set in your website.
I tried this on my test website and it works as expected. To clarify, did you download the Child Theme here?: https://docs.generatepress.com/article/using-child-theme/
If this doesn’t work, perhaps you can create a staging site where we can investigate further?
You may create a new topic and share the credentials in the private information field: https://docs.generatepress.com/article/using-the-premium-support-forum/#private-information
Okay, so I copied the WORKING file from the THEME to the CHILD theme folder. I the extracted the comments.php file from the LATEST version of GP and copied that to the THEME directory. Cleared any cache, including browser. IMMEDIATELY reverted to original format.