小编post 反博主

Editor post counter blogger

我想知道是否可以显示由编辑编辑的 post post 的数量 我在博客上还有其他编辑,所以我想在每个编辑下显示 post 的数量] 他 post 编辑。 喜欢下面这张图

这可能是一个解决方案,您可以添加博客小部件并像本演示中那样计算 post。 在此解决方案中,您需要 "hardcode" 作者姓名(此处用于演示 Author1Author2)。

<b:widget id='Blog2' locked='false' title='Blogposts' type='Blog' >
  <b:includable id='main'>
    <script>
      <b:with var='firstAuthorPosts' value='data:posts filter (p =&gt; p.author.name == &quot;Author1&quot;)'>
         var author1 = <data:firstAuthorPosts.size />;
       </b:with>    
       <b:with var='secondAuthorPosts' value='data:posts filter (p =&gt; p.author.name == &quot;Author2&quot;)'>
         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。

Here a lambda function is used to filter posts from specific Auhtor and the get the amount with the size Post - Array Metadata.
(It is done twice since it is for two Authors)
the window.addEvnetListener Event is added, to write the Data into the alert (in your case then the HTML-DOM)

可以在此处找到有关所用 Blogger 语法的更多详细信息:Unofficial Documentation

更新: Javascript详情

  • <b:with var='firstAuthorPosts' ... 创建一个名为 firstAuthorPosts
  • 的变量
  • ... value='...'> ...设置变量的值
  • data:posts ... 所有 posts 的博客小部件变量。
  • filter ...是对数组的lambda函数,即returns只有元素,其中过去在函数returns true
  • (p =&gt; p.author.name == &quot;Author1&quot;) ... 是函数,将为数组中的每个元素执行,而 returns 仅

所以<b:with var='firstAuthorPosts' value='data:posts filter (p =&gt; p.author.name == &quot;Author1&quot;)'>创建了一个变量并将值设置为作者的所有posts Author1.

  • <data:firstAuthorPosts.size /> ... returns 数组 firstAuthorPosts
  • 中所有 post 的 size/count

所以var author1 = <data:firstAuthorPosts.size />;创建了一个javascript变量,它将被设置为作者Author1.

的所有post的计数

下面三行,对于Author2

都是一样的
  • 创建加载事件处理程序,用于加载网站时
    window.addEventHandler("load", function(){ alert(`Author 1 has: ${author1} Posts and Author 2 has: ${author2} Posts`); });

由于 Javascript 变量 author1author2 是全局变量,可以在事件函数中访问。

这一行只是为了展示如何访问值: alert(`Author 1 has: ${author1} Posts and Author 2 has: ${author2} Posts`);

它使用插值,这就是 ${author1}${author2} 的原因。 (Documentation to Javascript interpolation)