Pages - Menu

Saturday, March 2, 2013

Reply button not working in Blogger comments

Many of the blogger use modified custom templates instead of the basic templates provided by blogger itself. Many a problems occurs when we start using new template. One of which is these templates doesn't allow to do reply to comments on any blogger post. 
 So the question is 

How to Enable Threaded Comments in Customized Blogger


So to enable your reply link in comments section you just need to follow some instructions which are actually very easy.

Step 1.  Make sure your blog's pre post comment feed is in full mode.


Here's how you can check or change the setting:
New interface: Go to Settings > Other > Allow Blog Feeds > Custom > Per-Post Comment Feeds and set it to Full.
Old interface: Go to Settings > Site Feed > Advanced Mode > Per-Post Comment Feeds and set it to Full.

Step 2. Your blog should opted for embedded comments.

These are the steps to switch to Embedded comments:
New interface: Go to Settings > Posts and Comments > Comments > Comment Location and select Embedded.
Old interface: Go to Settings > Comments > Comment Form Placement and select Embedded below post.


Besides this in custom template blog you need to reset your blog post area. But before going to do that make a backup of your current template because it may cause some unwanted changes.
See here >> How to make backup of your blogger template

So these are the steps for how to reset your custom template
  • Go to Template > Edit HTML > Proceed.
Make sure the  Expand Widget Templates check box is UNCHECKED.
  • Find the following line in your HTML code:

<b:widget id='Blog1' locked='true' title='Blog Posts' type='Blog'/>

  • Change the ID from Blog1 to Blog2. It’s as easy as that. What this step does is removing the corrupt Blog Posts gadget (Blog1) and replacing it with a fresh new gadget (Blog2).
  • Click SAVE TEMPLATE button to save.
  • You will be asked whether to keep the widget or delete it. Choose delete by clicking the DELETE WIDGETS button.

View your blog. The post gadget should by now revert to default template -fully functioning and free of any changes.
Now just click on the reply link of comment of any post and you will be really feel happy to see the reply link working from now .
................................................................................................................................................................
NOTE : Here I got a second method for this.. If the above mentioned trick is not working on your blog thn go for this.. Before applying any change don't forget to download your template. (Here is tutorial for how to download blogger template http://www.ollengg.com/2013/07/how-to-download-blogger-template-in-new.html

    *   First log in to Blogger
    *   Go To Template > Edit HTML
    *   Now find this code : <b:includable id='threaded_comment_js' var='post'>
    *   And Replace This above mentioned Code & Script With below Code & Script

<b:includable id='threaded_comment_js' var='post'>
<script async='async' expr:src='data:post.commentSrc' type='text/javascript'/>
<script type='text/javascript'>
(function() {
var items = <data:post.commentJso/>;
var msgs = <data:post.commentMsgs/>;
var config = <data:post.commentConfig/>;
// <![CDATA[
var cursor = null;
if (items && items.length > 0) {
cursor = parseInt(items[items.length - 1].timestamp) + 1;
}
var bodyFromEntry = function(entry) {
if (entry.gd$extendedProperty) {
for (var k in entry.gd$extendedProperty) {
if (entry.gd$extendedProperty[k].name == 'blogger.contentRemoved') {
return '<span class="deleted-comment">' + entry.content.$t + '</span>';
}
}
}
return entry.content.$t;
}
var parse = function(data) {
cursor = null;
var comments = [];
if (data && data.feed && data.feed.entry) {
for (var i = 0, entry; entry = data.feed.entry[i]; i++) {
var comment = {};
// comment ID, parsed out of the original id format
var id = /blog-(\d+).post-(\d+)/.exec(entry.id.$t);
comment.id = id ? id[2] : null;
comment.body = bodyFromEntry(entry);
comment.timestamp = Date.parse(entry.published.$t) + '';
if (entry.author && entry.author.constructor === Array) {
var auth = entry.author[0];
if (auth) {
comment.author = {
name: (auth.name ? auth.name.$t : undefined),
profileUrl: (auth.uri ? auth.uri.$t : undefined),
avatarUrl: (auth.gd$image ? auth.gd$image.src : undefined)
};
}
}
if (entry.link) {
if (entry.link[2]) {
comment.link = comment.permalink = entry.link[2].href;
}
if (entry.link[3]) {
var pid = /.*comments\/default\/(\d+)\?.*/.exec(entry.link[3].href);
if (pid && pid[1]) {
comment.parentId = pid[1];
}
}
}
comment.deleteclass = 'item-control blog-admin';
if (entry.gd$extendedProperty) {
for (var k in entry.gd$extendedProperty) {
if (entry.gd$extendedProperty[k].name == 'blogger.itemClass') {
comment.deleteclass += ' ' + entry.gd$extendedProperty[k].value;
}
}
}
comments.push(comment);
}
}
return comments;
};
var paginator = function(callback) {
if (hasMore()) {
var url = config.feed + '?alt=json&v=2&orderby=published&reverse=false&max-results=50';
if (cursor) {
url += '&published-min=' + new Date(cursor).toISOString();
}
window.bloggercomments = function(data) {
var parsed = parse(data);
cursor = parsed.length < 50 ? null
: parseInt(parsed[parsed.length - 1].timestamp) + 1
callback(parsed);
window.bloggercomments = null;
}
url += '&callback=bloggercomments';
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = url;
document.getElementsByTagName('head')[0].appendChild(script);
}
};
var hasMore = function() {
return !!cursor;
};
var getMeta = function(key, comment) {
if ('iswriter' == key) {
var matches = !!comment.author
&& comment.author.name == config.authorName
&& comment.author.profileUrl == config.authorUrl;
return matches ? 'true' : '';
} else if ('deletelink' == key) {
return config.baseUri + '/delete-comment.g?blogID='
+ config.blogId + '&postID=' + comment.id;
} else if ('deleteclass' == key) {
return comment.deleteclass;
}
return '';
};
var replybox = null;
var replyUrlParts = null;
var replyParent = undefined;
var onReply = function(commentId, domId) {
if (replybox == null) {
// lazily cache replybox, and adjust to suit this style:
replybox = document.getElementById('comment-editor');
if (replybox != null) {
replybox.height = '250px';
replybox.style.display = 'block';
replyUrlParts = replybox.src.split('#');
}
}
if (replybox && (commentId !== replyParent)) {
document.getElementById(domId).insertBefore(replybox, null);
replybox.src = replyUrlParts[0]
+ (commentId ? '&parentID=' + commentId : '')
+ '#' + replyUrlParts[1];
replyParent = commentId;
}
};
var hash = (window.location.hash || '#').substring(1);
var startThread, targetComment;
if (/^comment-form_/.test(hash)) {
startThread = hash.substring('comment-form_'.length);
} else if (/^c[0-9]+$/.test(hash)) {
targetComment = hash.substring(1);
}
// Configure commenting API:
var configJso = {
'maxDepth': config.maxThreadDepth
};
var provider = {
'id': config.postId,
'data': items,
'loadNext': paginator,
'hasMore': hasMore,
'getMeta': getMeta,
'onReply': onReply,
'rendered': true,
'initComment': targetComment,
'initReplyThread': startThread,
'config': configJso,
'messages': msgs
};
var render = function() {
if (window.goog && window.goog.comments) {
var holder = document.getElementById('comment-holder');
window.goog.comments.render(holder, provider);
}
};
// render now, or queue to render when library loads:
if (window.goog && window.goog.comments) {
render();
} else {
window.goog = window.goog || {};
window.goog.comments = window.goog.comments || {};
window.goog.comments.loadQueue = window.goog.comments.loadQueue || [];
window.goog.comments.loadQueue.push(render);
}
})();
// ]]>
</script>
</b:includable>

Don't forget to give your feedback about this second method.




46 comments:

  1. Okay, I was totally panicked about approving the "delete widget" thing, but it worked like a charm and now my Reply links are working for comments. You're a lifesaver! Thank you so much for posting this.

    ReplyDelete
  2. Thank you so much for this information. This finally helped me. I have not been able to reply to comments forever!!!

    ReplyDelete
  3. That solved my problem, you are a genious, thank you very much!!!

    ReplyDelete
  4. This comment has been removed by a blog administrator.

    ReplyDelete
  5. Are you able to help with why the comments box is not appearing in the first place? Your instructions are so clear it would be great if you could help with why I can't get the comments field to appear with my posts. Thanks

    ReplyDelete
    Replies
    1. it should appear properly. Please check out Step 1 and 2 again.

      Delete
    2. Hey try our second method which we had added recently. Read above post and at the end there is a new another method for this. Hope it will solve ur problem.

      Delete
  6. I did everything and I changed it from 'blog1' to 'blog2'. It saved the changes, but never gave me a delete widget option and my 'reply' button is still not working. Any help?

    ReplyDelete
    Replies
    1. try with replacing blog 2 with "blog 3" and also again check step 1 and 2 properly.

      Delete
    2. Hey try our second method which we had added recently. Read above post and at the end there is a new another method for this. Hope it will solve ur problem.

      Delete
  7. Replies
    1. ensure that you have followed the first two steps rightly.

      Delete
    2. Has there been a fix cause my step one and two are correct and I also tried changing it from blog2 to blog3. thanks

      Delete
    3. Hey try our second method which we had added recently. Read above post and at the end there is a new another method for this. Hope it will solve ur problem.

      Delete
  8. This comment has been removed by the author.

    ReplyDelete
  9. Hi, I dont get any question about delete the widget.. I have tried vith 2 and 3 and nothing changes.

    ReplyDelete
    Replies
    1. Hey try our second method which we had added recently. Read above post and at the end there is a new another method for this. Hope it will solve ur problem.

      Delete
  10. Hi, please help! I've installed a new template and lost a lot of time on making changes and pimping it up, and now I see that my reply button doesn't work. I've made the changes, followed all the steps, but it doesn't offer me the "delete widget option"!!

    ReplyDelete
    Replies
    1. Hey try our second method which we had added recently. Read above post and at the end there is a new another method for this. Hope it will solve ur problem.

      Delete
  11. Can the widget be deleted manually, and if yes, how?

    ReplyDelete
  12. Replies
    1. Hey try our second method which we had added recently. Read above post and at the end there is a new another method for this. Hope it will solve ur problem.

      Delete
  13. not working on ma blog :( :(


    salaskablog.blogspot.com

    ReplyDelete
    Replies
    1. Hey try our second method which we had added recently. Read above post and at the end there is a new another method for this. Hope it will solve ur problem.

      Delete
  14. it works like charm.

    i dont know but i think the last instruction is somewhat wrong

    shouldnt it be 'And Replace This above mentioned Code & Script With below Code & Script'

    ReplyDelete
    Replies
    1. ha ha. . my mistake. Corrected now. by the way thanks :)

      Delete
  15. Hi, I did try your second version, and it now works perfect!
    THANK YOU!!! :)

    ReplyDelete
  16. The second solution fixed my problem.Thanks man!My blog is http://completepcguide.blogspot.com/

    ReplyDelete
  17. Thank you! The second solution completely fixed my problem, thankfully. Although I wanted to mainly reply via email, I wanted the option of doing it in the comments in the event they didn't leave an email. :)

    ReplyDelete
  18. Thank you soooo much :) It solved my problem perfectly (the second method) :)

    ReplyDelete
  19. Second method works for me!
    Thank you so much :D

    ReplyDelete
  20. the second method solved my problem, yay!
    Thank you so much!!

    ReplyDelete
  21. thank you soooo much!!!!!!! i follow your instruction and it works for me!!!! thank youuuu!

    ReplyDelete
  22. Thank you so much, the second method worked for me :)

    ReplyDelete
  23. Thank you!!! I had almost given up!

    ReplyDelete
  24. Thank you for sharing, the first method works on my blog.
    ^^

    ReplyDelete
  25. Thank you very much... The first one didn't work though the 2nd one worked like a charm! :)

    ReplyDelete
  26. Thanks very much. The first option didn't work, but the second worked a treat, much appreciated!

    ReplyDelete
  27. Second method just works fine xD Thanks! I was scared that I was going to have to do the blog 1 changes all over again.

    ReplyDelete
  28. Thank you! I have tried so many different things suggested on many different sites and this one FINIALLY worked. Thank you, thank you! (It was the second method that did the trick).

    ReplyDelete