如何更改此代码以按 YYYY.MM.DD 格式和时间顺序列出 Blogger 上所有帖子的帖子标题?<title>

问题描述 投票:0回答:2
我喜欢在特定页面上显示我的帖子标题。了解作者所写内容比滚动所有页面或使用存档小部件导航更有效。

我找到了用于生成按字母顺序对帖子标题进行排序的列表的代码(代码如下),但我喜欢按时间顺序显示标题。有很多关于此的代码示例,但它们已经过时了。在博客平台发生一些变化后,它们不再工作了。

如何更改代码以按时间顺序和格式 YYYY.MM.DD 获取帖子标题?

<div> <ul id="postList12"></ul> </div> <script type="text/javascript"> var startIndex = 1; var maxResults = 150; var allResults = []; function sendQuery12() { var scpt = document.createElement("script"); scpt.src = "/feeds/posts/summary?alt=json&callback=processPostList12&start-index=" + startIndex + "&max-results=" + maxResults; document.body.appendChild(scpt); } function printArrayResults(root) { //Sort Alphebetically allResults.sort(function(a, b) { var a_string = a.children[0].textContent ; var b_string = b.children[0].textContent ; if(a_string < b_string) return -1; if(a_string > b_string) return 1; return 0; }) var elmt = document.getElementById("postList12"); for (index = 0; index < allResults.length; index++) { elmt.appendChild(allResults[index]); } } function processPostList12(root) { var elmt = document.getElementById("postList12"); if (!elmt) return; var feed = root.feed; if (feed.entry.length > 0) { for (var i = 0; i < feed.entry.length; i++) { var entry = feed.entry[i]; var title = entry.title.$t; var date = entry.published.$t for (var j = 0; j < entry.link.length; j++) { if (entry.link[j].rel == "alternate") { var url = entry.link[j].href; if (url && url.length > 0 && title && title.length > 0) { var liE = document.createElement("li"); var a1E = document.createElement("a"); a1E.href = url; a1E.textContent = title + " (" + date.substr(0,10) + ")"; liE.appendChild(a1E); //elmt.appendChild(liE); allResults.push(liE); } break; } } } if (feed.entry.length >= maxResults) { startIndex += maxResults; sendQuery12(); } else { printArrayResults(); } } } sendQuery12(); </script>

代码从此处复制:

https://dansator.blogspot.fi/2015/10/general-alphabetical-list-of-posts.html

javascript list blogger
2个回答
0
投票
从代码中删除

sort

 方法。删除以下内容:

//Sort Alphebetically allResults.sort(function(a, b){ var a_string = a.children[0].textContent ; var b_string = b.children[0].textContent ; if(a_string < b_string) return -1; if(a_string > b_string) return 1; return 0; })

你的代码应该是

<div> <ul id="postList12"></ul> </div> <script type="text/javascript"> var startIndex = 1; var maxResults = 150; var allResults = []; function sendQuery12() { var scpt = document.createElement("script"); scpt.src = "/feeds/posts/summary?alt=json&callback=processPostList12&start-index=" + startIndex + "&max-results=" + maxResults; document.body.appendChild(scpt); } function printArrayResults(root) { var elmt = document.getElementById("postList12"); for (index = 0; index < allResults.length; index++) { elmt.appendChild(allResults[index]); } } function processPostList12(root) { var elmt = document.getElementById("postList12"); if (!elmt) return; var feed = root.feed; if (feed.entry.length > 0) { for (var i = 0; i < feed.entry.length; i++) { var entry = feed.entry[i]; var title = entry.title.$t; var date = entry.published.$t for (var j = 0; j < entry.link.length; j++) { if (entry.link[j].rel == "alternate") { var url = entry.link[j].href; if (url && url.length > 0 && title && title.length > 0) { var liE = document.createElement("li"); var a1E = document.createElement("a"); a1E.href = url; a1E.textContent = title + " (" + date.substr(0,10) + ")"; liE.appendChild(a1E); //elmt.appendChild(liE); allResults.push(liE); } break; } } } if (feed.entry.length >= maxResults) { startIndex += maxResults; sendQuery12(); } else { printArrayResults(); } } } sendQuery12(); </script>
    

0
投票
O código abaixo,além de retornar todas as ocorrências,accenta três botões com opções para ordenar em ordem crescente, descrescente, ou deixar na ordem nature:

<div> <ul id="postList12"></ul> <div> <button onclick="sortList('asc')">Ordenar Crescente</button> <button onclick="sortList('desc')">Ordenar Decrescente</button> <button onclick="resetList()">Não Ordenar</button> </div> </div> <script type="text/javascript"> var startIndex = 1; var maxResults = 150; var allResults = []; function sendQuery12() { var scpt = document.createElement("script"); scpt.src = "/feeds/posts/summary?alt=json&callback=processPostList12&start-index=" + startIndex + "&max-results=" + maxResults; document.body.appendChild(scpt); } function printArrayResults() { var elmt = document.getElementById("postList12"); for (var index = 0; index < allResults.length; index++) { elmt.appendChild(allResults[index]); } } function processPostList12(root) { var elmt = document.getElementById("postList12"); if (!elmt) return; var feed = root.feed; if (feed.entry.length > 0) { for (var i = 0; i < feed.entry.length; i++) { var entry = feed.entry[i]; var title = entry.title.$t; var date = entry.published.$t; for (var j = 0; j < entry.link.length; j++) { if (entry.link[j].rel == "alternate") { var url = entry.link[j].href; if (url && url.length > 0 && title && title.length > 0) { var liE = document.createElement("li"); var a1E = document.createElement("a"); a1E.href = url; a1E.textContent = title + " (" + date.substr(0, 10) + ")"; liE.appendChild(a1E); allResults.push(liE); } break; } } } if (feed.entry.length >= maxResults) { startIndex += maxResults; sendQuery12(); } else { printArrayResults(); } } } function sortList(order) { var elmt = document.getElementById("postList12"); elmt.innerHTML = ''; // Limpa a lista antes de adicionar itens ordenados if (order === 'asc') { allResults.sort(function(a, b) { return a.textContent.localeCompare(b.textContent); }); } else if (order === 'desc') { allResults.sort(function(a, b) { return b.textContent.localeCompare(a.textContent); }); } printArrayResults(); } function resetList() { var elmt = document.getElementById("postList12"); elmt.innerHTML = ''; // Limpa a lista allResults = []; // Limpa o array de resultados startIndex = 1; // Redefine o índice de início sendQuery12(); // Faz uma nova consulta } sendQuery12(); </script>

© www.soinside.com 2019 - 2024. All rights reserved.