Fix – Comments not showing in Thesis theme after WordPress 4.0 Upgrade
A month ago, WordPress Version 4.0 “Benny” was released for the public with several enhancements and bug fixes. Though the new WP release went smooth but the new update caused few problems for WordPress users running the older version of Thesis theme. The issue is happening with Thesis 1.8.5 and older versions of Thesis earlier than v1.8.5, that aren’t compatible with WordPress 4.0. As a result of this, Thesis 1.x users might notice 500 Server Error and “Comments not appearing in posts” after upgrading to WordPress 4.0.
A similar issue occurred on our site, where readers were able to make comments but the comments weren’t actually showing up in any posts and one could only see the number of comments counter. Well, we fixed this finally and it was pretty easy! I’m sharing this as it could be useful for other Thesis theme users who’re facing the same issue since a month.
DIYthemes has released a patch to fix this problem by releasing Thesis 1.8.6 update with full WordPress 4.0 compatibility. However, you need to have a DIY Themes account in order to download the update and see the instructions to update from version 1.x to 1.8.6. Well, you can even fix the highlighted issue simply by following the simple instruction stated below. The fix instructions reported here are derived from Thesis support forum.
Note: We have tried it on Thesis 1.8.4 + WordPress 4.0. If you’ve an older Thesis version prior to v1.8.5 then you must first update Thesis to v1.8.5. Somehow, if you can’t update Thesis, then make sure to take a backup of comments.php file first and then try the below trick.
NOTE: You must be using version 1.8.5 before deploying this fix; if you’re still using an outdated 1.x version, then you must update Thesis first.
1. Using FTP, navigate to the /wp-content/themes/thesis_185/lib/classes/ folder on your server.
2. Edit the comments.php file in the classes folder at line 187, instead of
$wp_query->comments_by_type = &separate_comments($wp_query->comments); $_comments = $wp_query->comments_by_type['comment'];
you now write
$wp_query->comments_by_type = separate_comments($wp_query->comments); $_comments = &$wp_query->comments_by_type['comment'];
The only change is moving the "&" to the $_comments-variable really but that seems to cause the 500 internal server errors.
Once you’ve followed these steps, check to see if your comments are now being displayed correctly.
Fortunately, the above quoted trick worked like a charm for us and comments started appearing again just like before. Let us know if it works for you. :)
Tip via @leanderbraunschweig [WordPress Support]