June 6, 2014

Cara Mengatasi Tombol Reply Komentar Blog yang Tidak Berfungsi

June 6, 2014

 Tombol Reply Komentar Blog
Tombol reply comment (balas/jawab komentar) di blog Anda tidak berfungsi? Bagaimana cara mengatasinya? Ini dia tips lengkapnya!

BIASANYA masalah tombol reply comment (balas komentar) yang error ini terjadi di template blog "jadul" alias lama.

CB sering mengalaminya juga karena hobi CB 'kan modifikasi template :)

Ini dia beberapa cara yang CB lakukan untuk mengatasi tombol reply komentar blog yang tidak berfungsi itu.

Ada Dua Cara:

1. Setting di Dashboard Blog
2. Ganti kode Javascrip/HTML

Cara#1 Setting Kotak Komentar

Pastikan settingan komentar blog Anda seperti tampak dalam gambar. Caranya:
  1. Klik "Settings" > "Posts and Comments" > "Comment Location" > pilih "Embedded"
  2. Klik "Other" > "Allow Blog Feed" > pilih "Full".
  3. Save!

setting reply komentar

setting reply komentar

Lihat hasilnya. Kalau sudah bisa, ya sudah... ucapkan alhamdulillah.  Tapi biasanya sih masih belum jalan. Maka, lakukan langkah kedua berikut ini.

Cara #2 Ganti Javascript

  1. Klik "Template" > "Edit HTML"
  2. Cari (Ctrl+F) kode yang diawali dengan <b:includable id=’threaded_comment_js’ var=’post’> ... dan diakhiri dengan kode penutup </b:includable>
  3. Hapus dan ganti (replace) kode yang panjang tersebut dengan kode berikut ini yang juga sama panjangnya:
<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>

4. Save Template! Lihat hasilnya, testing!

Jika MASIH BELUM BERHASIL JUGA, maka lakukan lagi cara ketiga, berupa pergatian kode lagi, sebagai berikut:

Cara #3 Ganti kode lain

1. Template > Edit HTML
2. Temukan kode berikut ini:

         <b:if cond='data:blog.pageType == &quot;static_page&quot;'>
         <b:include data='post' name='comments'/>
        </b:if>
        <b:if cond='data:blog.pageType == &quot;item&quot;'>
          <b:include data='post' name='comments'/>
        </b:if>

3. Ganti dengan kode ini:

        <b:if cond='data:blog.pageType == &quot;static_page&quot;'>
          <b:if cond='data:post.showThreadedComments'>
            <b:include data='post' name='threaded_comments'/>
          <b:else/>
            <b:include data='post' name='comments'/>
          </b:if>
        </b:if>
        <b:if cond='data:blog.pageType == &quot;item&quot;'>
          <b:if cond='data:post.showThreadedComments'>
            <b:include data='post' name='threaded_comments'/>
          <b:else/>
            <b:include data='post' name='comments'/>
          </b:if>
        </b:if>

4. Save Template!

Berhasilkah? Alhamdulillah kalo berhasil.

Masih belum jalan juga itu Tombol Reply Komentar? Hmm... ini langkah paling jitu: GANTI TEMPLATE!!! Soalnya  Tombol Reply Komentar Blog yang Tidak Berfungsi itu hanya akan menghambat interaksi kita dengan pengunjung yang komentar di blog kita.

Good luck and happy blogging!

Referensi:
  • http://xomisse.com/blog/fix-reply-button-blogger-comments/
  • http://www.betatemplates.com/2012/01/how-enable-threaded-comments-blogger.html

Previous
« Prev Post
Author Image

CB Blogger

Recommended Posts

Related Posts

Show comments
Hide comments

14 comments on Cara Mengatasi Tombol Reply Komentar Blog yang Tidak Berfungsi

  1. Terimakasih infonya gan. Bermanfaat

    ReplyDelete
  2. udah berhasil thanks gan ?....

    ReplyDelete
  3. thanks gan, sukses cara 2

    ReplyDelete
  4. terimakasih gan... work banget :v

    ReplyDelete
  5. bisa di cara ke 3, thanks gan

    ReplyDelete
  6. mau tanya mas kalo mau rubah kolom komentar gimana ya? komentar di blog saya kalu mau komentar begitu klik kolom langsung di alihkan ke komentar google+ , udah ngikutin tutor pindah ke dashbor setingan bloger tetep aja sama.

    ReplyDelete
  7. Mantap, Terima Kasih Kak Artikelnya Membantu

    ReplyDelete
  8. Berhasil dengan cara ke-3, terima kasih.
    Btw, kenapa kotak komentar blog ini sendiri belum dibetulkan? hehe.

    ReplyDelete
    Replies
    1. gan tolong cek blog saya kok comment name nya uknown padahal login pake account google

      https://mashuanbloggernewbie.blogspot.com/

      Delete
  9. Di template kompiflexible agan bisa bantu tidak ya?

    ReplyDelete
  10. thank,,,bisa dengan cara yang ke dua

    ReplyDelete

Contact Form

Name

Email *

Message *