Hi,
I was wondering if it is possible to load all comments at once as the front end user injecting Javascript?
If there is a public Method available to do that?
Reason I ask is because I want to print out the pages with a lot of comments with AJAX pagination, I don't want to have to scroll down for each page to print..
Hi @tunafish,
You can use the "Load all comments" for the "Comments Pagination Type" option. It's located in the Dashboard > wpDiscuz > Settings > Comment Thread Displaying admin page.
More info here: https://wpdiscuz.com/docs/wpdiscuz-7/plugin-settings/comment-thread-displaying/#comments-pagination-type
In case you want to say thank you! 🙂
We'd really appreciate if you leave a good review on the plugin page.
This is the best way to say thank you to this project and the support team.
Thanks for the reply but as the front end user I don't have access to the admin page. I want to load all comments with JS injecting it after the page has loaded. No Public Method or eventListener or something?
This is not possible with wpDiscuz for security reasons.
In case you want to say thank you! 🙂
We'd really appreciate if you leave a good review on the plugin page.
This is the best way to say thank you to this project and the support team.
I don't see why loading all comments could be a security issue, but hey I am not a developer.
I am not trying anything wrong or strange or something, I just want to print all the comments of some webpages using your ajax pagination without having to scroll!..
<div class="wpdiscuz-comment-pagination" style="display: none;"> <div class="wpd-load-more-submit-wrap"> <button name="submit" data-lastparentid="281344" class="wpd-load-more-submit wpd-loaded wpd-prim-button"> Load More Comments </button> </div> <span id="wpdiscuzHasMoreComments" data-is_show_load_more="1"></span> </div>
Is there nothing I can do with the button?
Any help would be appreciated!
OK, I have found it.
Basically 3 steps:
- set .wpdiscuz-comment-pagination property to style="display:block"
- set #wpdiscuzHasMoreComments attribute to data-is_show_load_more="0"
- <button> .click()
I checked pagination with:
- presence of #wpdiscuzHasMoreComments
- comparing the <button> attribute data-lastparentid against the last loaded comment <div> id #wpd-comm-XXXXX_0
Hope it can help someone else!
function autoLoadAllComments() {
var moreComSpn = document.getElementById('wpdiscuzHasMoreComments');
if (moreComSpn != null) {
var moreComBtn = moreComSpn.previousElementSibling.firstElementChild;
var btnLastParentID = moreComBtn.getAttribute('data-lastparentid');
var divLastParentID = moreComSpn.parentNode.previousElementSibling.id;
divLastParentID = divLastParentID.split('wpd-comm-')[1];
divLastParentID = divLastParentID.split('_0')[0];
if (btnLastParentID == divLastParentID) {
moreComSpn.parentNode.style.display = 'block';
moreComSpn.setAttribute('data-is_show_load_more', '0');
moreComBtn.click();
} else { clearTimeout(flash_autoLoadAllComments); }
} else { clearTimeout(flash_autoLoadAllComments); }
}
autoLoadAllComments();
var flash_autoLoadAllComments = setTimeout(autoLoadAllComments, 250);

