WordPress如何渲染Shortcode内的分页标签

Posted onCategories技术文章

肉饼哥哥的博客里有两个生产图片的工具 朋友圈截屏生成器我们是谁生成器,做出来已经有一阵子了,偶尔也有一些朋友跑来玩一玩。可惜一直没空把用户创造的优秀作品如何怎么在这个网站上展示出来。因为玩的人还是比较少所以即使一直想把这功能加上去,仍然动力不足。

直到突然昨天有个哥们连续创作了10几个图片,并且非常认真的上传图片和文章,小感动一下,肉饼哥哥决定克服万难把用户分享的功能弄上去。

整体开发需求脑袋里过了一下大概是这样子的

  1. 去除用户创造的IP限制。之前每个IP只能同时创建一个图片,后者会覆盖前者。既然要展示用户内容,这个限制要去掉。
  2. 后台审核用户图片功能。恩,肉饼哥哥希望展示出来的图片是有意义的,符合社会主义核心价值观。
  3. 开发一个Shortcode,来读取所有用户的图片,供Post内展示。
  4. Shortcode内部要支持<--nextpage-->标签让Post能增加翻页,考虑到万一图片多了,一页展示会比较慢。

想法是好的,不过开始动手后肉饼哥哥遗憾的发现第四点不是那么容易办到的。原来WordPress里的the_content hook 执行的时候,这个Post分多少页已经计算完毕;所以我的要求在add_shortcode hook里即便带了<!--nextpage-->标签,也不能够改变分页的数量了!

寻思无计。只能找狗爹。

正在绝望边缘突然眼前一亮发现这个解决方案:programmatically-inserting-page-breaks

用这个答案里的辅助方法get_the_content_part_wpse194155, 在the_content filter里,调用do_shortcode函数,相当于把我的Shortcode里的内容贴到内容中参与分页计算。

完美!我只需要点击后台的审核按钮,通过审核的图片就会以新的一页展示在文章内了。已经更新到 朋友圈截屏生成器我们是谁生成器

 

1 thought on “WordPress如何渲染Shortcode内的分页标签”

发表评论

电子邮件地址不会被公开。 必填项已用*标注