India’s new draft <a href="https://healthylife7.com/short-term-grants-fail-rural-health-efforts/” title=”Short-term grants fail rural health efforts”>health policy focuses on medical research changing lives, not papers published – The South First | News, Politics, Sports, Entertainment & Live Updates
${author.name}
`;
});
} else {
authorsHTML = `
No author information available
`;
}
// Additional content
let additionalContent = `
`;
// Append new article with additional content
$(‘#articles-container’).append(`
${response.data.title}
${response.data.meta_description}
![]()
Make Us Your Preferred Source on Google${response.data.content}
${additionalContent}
`);
currentPostId = response.data.id;
excludedPosts.push(currentPostId);
updateMetaTags(response.data);
} else {
console.log(‘No more articles to load.’);
$(window).off(‘scroll’);
}
},
error: function (xhr, status, error) {
console.error(‘AJAX error:’, error);
},
complete: function () {
isLoading = false;
},
});
}
function fetchPreviousArticle(currentPostId) {
$.ajax({
url: ‘/wp-json/custom/v1/previous-article’,
type: ‘GET’,
data: {
post_id: currentPostId,
category_id: categoryId,
},
success: function (response) {
console.log(‘AJAX response received:’, response);
if (response.success) {
$(‘#articles-container’).prepend(`
${response.data.title}
${response.data.content}
`);
currentPostId = response.data.id;
} else {
console.log(‘No previous articles to load.’);
$(window).off(‘scroll’); // Stop further loading
}
},
error: function (xhr, status, error) {
console.error(‘AJAX error:’, error);
},
complete: function () {
isLoading = false;
},
});
}
// Trigger fetch on scroll
let lastScrollTop = 0;
$(window).on(‘scroll’, function () {
let scrollTop = $(window).scrollTop();
let scrollHeight = $(document).height();
let windowHeight = $(window).height();
// Scroll down: Trigger fetch when reaching the bottom (or near the bottom)
if (scrollTop + windowHeight >= scrollHeight – 900) {
fetchNextArticle();
}
});
});
var lastScrollTop = $(window).scrollTop(); // Store initial scroll position
$(window).on(“scroll”, function () {
var currentScrollTop = $(window).scrollTop();
if (currentScrollTop < lastScrollTop) { // Check if scrolling up
$(“.article”).each(function () {
var divTop = $(this).offset().top;
var divBottom = divTop + $(this).outerHeight();
var scrollPos = $(window).scrollTop() + $(window).height() / 2; // Middle of viewport
if (scrollPos >= divTop && scrollPos <= divBottom) {
var attributeValue = $(this).attr(“id”); // Change “data-type” to your attribute
get_curarticle_val = $(“#previous_article_id”).val();
// console.log(“Scrolled into Article ID:”, attributeValue);
// console.log(“Scrolled into Previous Article ID:”, get_curarticle_val);
if(get_curarticle_val != attributeValue){
$(“#previous_article_id”).val(attributeValue);
//console.log(“Scrolled into Article ID:”, attributeValue);
get_new_article(attributeValue);
}
// return false; // Stop checking after finding the first match
}
});
}
lastScrollTop = currentScrollTop; // Update scroll position
});
function get_new_article(currentPostId){
let isLoading = false;
if (isLoading) return;
isLoading = true;
$.ajax({
url: ‘/wp-json/custom/v1/previous-article’,
type: ‘GET’,
data: {
post_id: currentPostId,
},
success: function (response) {
if (response.success) {
currentPostId = response.data.id;
$(“#previous_article_id”).val(currentPostId);
let newUrl = response.data.link;
data = response.data;
var decodedTitle = decodeHTMLEntities(data.title);
// Assuming you have the new title and description stored in variables
var newDescription = data.meta_description;
var metaTitleTag = $(“meta[name=’title’]”);
if (metaTitleTag.length) {
metaTitleTag.attr(“content”, decodedTitle); // Update meta title
} else {
$(“head”).append(”);
}
// Update the document title
document.title = decodedTitle; // This updates the page title shown in the browser’s tab
// Check if meta description exists, and update it
var metaDescription = $(“meta[name=’description’]”);
if (metaDescription.length) {
metaDescription.attr(“content”, newDescription); // Update the existing meta description
} else {
// If meta description doesn’t exist, create it and append to the section
$(“head”).append(”);
}
// Similarly, if you want to dynamically set the canonical URL as well
var newCanonicalUrl = data.canonical_url;
// Check if the canonical link exists
var canonicalLink = $(“link[rel=’canonical’]”);
if (canonicalLink.length) {
canonicalLink.attr(“href”, newCanonicalUrl); // Update the existing canonical URL
} else {
// If canonical link doesn’t exist, create it and append to the
$(“head”).append(”);
}
// Update keywords (if any)
if (data.keywords) {
let keywordsMeta = $(“meta[name=’keywords’]”);
if (keywordsMeta.length) {
keywordsMeta.attr(“content”, data.keywords);
} else {
$(“head”).append(”);
}
}
history.pushState(null, decodedTitle, data.link);
gtag(‘config’, ‘G-2EJFH5VVDZ’, {
‘page_title’: decodedTitle,
‘page_path’: data.link
});
} else {
console.log(‘No more articles to load.’);
$(window).off(‘scroll’); // Stop further loading
}
},
error: function (xhr, status, error) {
console.error(‘AJAX error:’, error);
},
complete: function () {
isLoading = false;
},
});
}



