Blogger'da Arşiv Sayfası Oluşturma

Okuyucularınızın tüm yazılarınıza tek bir noktadan ulaşmasını sağlamak için bir Arşiv Sayfası oluşturmak okuyucunuza büyük bir kolaylık sağlar. Bütün yazılarınızı tek bir sayfada alt alta dizen bir listedir.

Böylece okuyucu gelince tek tıkla her şeyi görebilir. Arama motorunun "Sayfada bul" özelliğini kullanarak istediği yazıyı kolay bulmasını sağlar.

<script>
(function() {
// Credit: www.junauza.com
if (window.location.pathname.indexOf('/p/arsiv') === -1 &&
window.location.pathname.indexOf('/p/arsiv') === -1) return;
// Find the post body (could be .post-body or .post-snippet)
var postBody = document.querySelector('.post-body') || document.querySelector('.post-snippet');
if (!postBody) return;

// Hide meta info, pills, and reading time
var metaInfo = document.querySelector('.post-meta-info');
if (metaInfo) metaInfo.style.display = 'none';
var pills = document.querySelector('.post-labels-pills');
if (pills) pills.style.display = 'none';
var readMore = document.querySelector('.read-more-link');
if (readMore) readMore.style.display = 'none';

// Replace page content with archive container
postBody.innerHTML = '<div id="archive-container"><span style="opacity:0.4">Arşiv yükleniyor...</span></div>';

var allPosts = [];
var batchSize = 150;
var startIndexes = [1, 151, 301, 451, 601, 751, 901, 1051, 1201];
var completed = 0;

function fetchBatch(startIndex) {
var script = document.createElement('script');
script.src = '/feeds/posts/summary?alt=json-in-script&max-results=' + batchSize + '&start-index=' + startIndex + '&callback=_archiveCB';
script.onerror = function() {
completed++;
if (completed < startIndexes.length) fetchBatch(startIndexes[completed]);
};
document.body.appendChild(script);
}

window._archiveCB = function(data) {
if (data.feed && data.feed.entry) {
for (var i = 0; i < data.feed.entry.length; i++) {
var entry = data.feed.entry[i];
var url = '';
for (var j = 0; j < entry.link.length; j++) {
if (entry.link[j].rel === 'alternate') {
url = entry.link[j].href;
break;
}
}
allPosts.push({
title: entry.title.$t,
url: url,
published: entry.published.$t
});
}
}
completed++;
renderArchive();
if (completed < startIndexes.length) {
fetchBatch(startIndexes[completed]);
}
};

function renderArchive() {
allPosts.sort(function(a, b) {
return b.published.localeCompare(a.published);
});

var months = ['Ocak','Şubat','Mart','Nisan','Mayıs','Haziran','Temmuz','Ağustos','Eylül','Ekim','Kasım','Aralık'];
var container = document.getElementById('archive-container');
if (!container) return;

var curMonth = '', curYear = '';
var html = '<div style="opacity:0.4;font-size:13px;margin-bottom:25px;">' + allPosts.length + ' yazı yayınlandı</div>';

for (var i = 0; i < allPosts.length; i++) {
var p = allPosts[i];
var yr = p.published.substring(0, 4);
var mo = parseInt(p.published.substring(5, 7), 10);
var dy = parseInt(p.published.substring(8, 10), 10);
var moName = months[mo - 1];
var dayStr = dy < 10 ? '0' + dy : '' + dy;

if (curMonth !== moName || curYear !== yr) {
curMonth = moName;
curYear = yr;
html += '<div style="font-weight:700;font-size:15px;margin:25px 0 8px;opacity:0.7;">' + moName + ' ' + yr + '</div>';
}

html += '<div style="padding:4px 0;font-size:15px;line-height:1.5;">';
html += '<span style="display:inline-block;width:30px;opacity:0.6;font-size:13px;font-weight: 900;">' + dayStr + '</span>';
html += '<a href="' + p.url + '" style="color:inherit">' + p.title + '</a>';
html += '</div>';
}
container.innerHTML = html;
}

// Start fetching sequentially
fetchBatch(startIndexes[0]);
})();
</script>

Yardıma ihtiyacınız olursa yorumlarda belirtebilirsiniz. Nasıl göründüğünü merak ediyorsanız menüden "Arşiv" sayfasına giderek bakabilirsiniz.

Credit by www.junauza.com

Yorum yaz