我想知道是否有可能显示编辑发布的帖子数量我在博客上有其他编辑,所以我想在每个编辑下显示他发布的帖子数量。 如下图所示
答案 0 :(得分:2)
这可能是一个解决方案,您可以添加一个Blog Widget并像在此演示中一样计算帖子。
在此解决方案中,您需要"硬编码"作者姓名(此处为演示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>
要将帖子添加到HTML中,您必须使用一些javascript,但如何完成此操作取决于您的模板生成的HTML。
此处lambda函数用于来自特定Auhtor的
filter
帖子,并使用size
Post-Array元数据获取金额。
(因为它是两个作者所做的两次)
添加window.addEvnetListener
事件,将数据写入警报(在您的情况下,然后是HTML-DOM)
可以在此处找到使用过的Blogger语法的更多详细信息:Unofficial Documentation
<强>更新强> Javascript详细信息
<b:with var='firstAuthorPosts'
...创建名为firstAuthorPosts
... value='...'>
...设置变量值data:posts
... blog-widget-variable。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}
的原因。 (Documentation to Javascript interpolation)