Regression on Genesis themes: comment list missing after 2.0 update
-
I’m reporting a regression after upgrading from 1.0.10 to 2.0.0. On my live site, approved comments still exist in the database and in the post editor, but visitors no longer see the comment list on single posts. The “Leave a comment” form still appears.
Environment
- WordPress: 7.x (upgraded recently; issue started when the plugin updated)
- Theme: Genesis 3.6.2 (StudioPress)
- Plugin: Lazy Load for Comments 2.0.0
- Lazy-load settings: Comments enabled globally and per post; load on scroll or click (either reproduces the issue)
Steps to reproduce
- Install/activate Lazy Load for Comments 2.0.0 on a Genesis child theme site that has posts with approved comments.
- Open a single post on the front end (logged out or incognito).
- Scroll to the comments area or click the load button (depending on settings).
Expected: Full comments section (existing comments + reply form), as with 1.0.10.
Actual: Reply/comment form is visible, but the list of existing comments is missing.- Control test: Deactivate the plugin (or set load method to Off in Comments Lazy Load settings). Reload the same post → comment list returns immediately.
Comments are approved in Comments admin and Discussion is enabled on the post, this is not a moderation or “comments closed” issue.
What I found
Genesis only outputs the comment list when
$wp_query->comments_by_type['comment']is populated. That array is filled whencomments_template()is called with$separate_comments = true.Genesis calls:
comments_template( '', true );In 2.0.0, when comments are fetched via the REST API, the classic-theme renderer uses:
comments_template( '' );(
includes/services/class-comments-renderer.php, classic-theme fallback)Without the second argument,
comments_by_typestays empty, so Genesis skipsgenesis_do_comments()(no list) but still runsgenesis_do_comment_form()(form only). That matches what I see on the front end.Comparison with 1.0.10
1.0.10 included explicit Genesis support. On AJAX load it called:
$separate_comments = apply_filters( 'llc_comments_content_separate_comments', false );
comments_template( '', $separate_comments );And
includes/class-llc-compatibility.phpset$separate_commentsto true when Genesis (or Divi) is active:if ( $genesis || $divi ) {
$flag = true;
}2.0.0 rewrote the plugin around the REST API. The compat layer in
includes/compat/class-manager.phponly documents Divi — there is no equivalent Genesis handling, and the REST renderer does not passtrueforseparate_comments.Suggested fix
In
CommentsRenderer::render(), for classic themes, change:comments_template( '' );to:
comments_template( '', true );Optionally restore 1.0.10-style detection (Genesis/Divi) via a filter such as
lazy_load_for_comments_separate_commentsfor themes that require separated comment types.Workaround (current)
- Deactivate the plugin, or
- Set load method to Off under Comments Lazy Load (comments render inline again).
Thanks for maintaining the plugin. 1.0.10 worked well on Genesis for years and I’m hoping this is a small fix in 2.0.1.
You must be logged in to reply to this topic.