我想知道是否可以显示编辑发布的帖子数量,我在博客上还有其他编辑,所以我想在每个编辑下面显示他发布的帖子数量。就像下面这张图片

发布于 2017-07-28 08:36:55
这可能是一个解决方案,您可以添加一个Blog Widget并计算这个演示中的帖子。在这个解决方案中,您需要“硬编码”作者的名字(这里是Demo Author1和Author2)。
<b:widget id='Blog2' locked='false' title='Blogposts' type='Blog' >
<b:includable id='main'>
<script>
<b:with var='firstAuthorPosts' value='data:posts filter (p => p.author.name == "Author1")'>
var author1 = <data:firstAuthorPosts.size />;
</b:with>
<b:with var='secondAuthorPosts' value='data:posts filter (p => p.author.name == "Author2")'>
var author2 = <data:secondAuthorPosts.size />;
</b:with>
window.addEventListener("load", function(){
// here write this info into the HTML
alert(`Author 1 has: ${author1} Posts and Author 2 has: ${author2} Posts`);
});
</script>
</b:includable>
</b:widget>要将Post添加到HTML中,您必须使用一些javascript,但是这取决于模板生成的HTML。
这里,一个lambda函数用于从特定的Auhtor中发布
filter,并使用size后数组元数据获取数量。 (这是两次,因为它是为两个作者) 添加了window.addEvnetListener事件,以便将数据写入警报(在您的示例中,则是HTML)
有关使用过的Blogger语法的更详细信息可以在这里找到:非正式文件
更新: Javascript详细信息
<b:with var='firstAuthorPosts' ...创建一个名为firstAuthorPosts的变量... value='...'> ...集合是变量的值data:posts ...blog-小部件-所有帖子的变量。filter ...是数组的lambda函数,它只返回元素,其中过去的函数返回true。(p => p.author.name == "Author1") ...是一个函数,它将对数组中的每个元素执行,并且只返回因此,<b:with var='firstAuthorPosts' value='data:posts filter (p => p.author.name == "Author1")'>创建一个变量,并将值设置为作者所有名为Author1的帖子。
<data:firstAuthorPosts.size /> ...返回数组firstAuthorPosts中所有帖子的大小/计数因此,var author1 = <data:firstAuthorPosts.size />;创建了一个javascript变量,该变量将被设置为作者Author1的所有帖子的计数。
对于Author2,以下三行是相同的
window.addEventHandler("load", function(){ alert(`Author 1 has: ${author1} Posts and Author 2 has: ${author2} Posts`); });由于Javascript变量、author1、和 author2__,是全局的,所以可以在事件函数.中访问。
这一行只是为了展示如何访问值:alert(`Author 1 has: ${author1} Posts and Author 2 has: ${author2} Posts`);
它使用插值,这就是为什么${author1}和${author2}。(Javascript内插文档)
https://stackoverflow.com/questions/45222194
复制相似问题