


























IndieBlocks是一款易于入门的IndieWeb插件,通过该插件可以很简单地令自己的WordPress站点支援IndieWeb功能,简单来说就是让自己的站点成为一个小小的社交媒体终端。
该插件提供了几种「块」(block,WordPress古腾堡编辑器的一个基本编辑单位),包括:
等。可以向这些块输入URL,并得到相应的微格式HTML(microformatted HTML)输出。
结合与微格式兼容的主题(theme),支援微格式的客户端(microformats clients)便能够确定帖文(post)的类型(普通的推文,抑或是回复、转发等)。
上述的内容,很明显都是微博客服务会提供的功能。那么如果有将这类微博客性质的内容,与站点旧有的(严肃的)长文分开之需要,该插件恰好就还提供了一种专属于微博客性质内容的自定义帖文类型(post type)——札记(notes)与喜欢(likes,亦可理解为点赞),这也就是本文所涉及的内容了。
这些微格式与Webmention协议相结合的话,可实现丰富的跨站点对话。IndieBlocks带有自己的Webmention实现,但也可以使用单独的插件。
帖文类型「札记」(note)的默认slug为notes,「喜欢」(like)为likes。例如,鄙站的一则札记URL如下:
https://sanguok.com/microblog/21d198c476/
其中microblog就是该札记类型的slug。或许有读者注意到了:你这个microblog,跟我的notes,这俩slug怎么不一样呢?这是因为笔者修改了默认的slug。
在官方文档中,有提供修改默认slug的方式。在functions.php中加入代码:
add_action( 'register_post_type_args', function( $args, $post_type ) {
if ( 'indieblocks_note' === $post_type ){
$args['rewrite']['slug'] = 'microblog'; // 新slug
}
return $args;
}, 99, 2 );
其中,indieblocks_note是帖文类型「札记」(note)的类型名。该段代码即将札记的slug改写(rewrite)为microblog。
(如果访问WordPress站点的数据库,那么存放站点帖文的wp_posts(或者wp_站点编号_posts,例如wp_10_posts)表格中,post_type一栏下面就会呈现post、attachment、revision等等名称,这些名称都是各自的「帖文类型名」。关于帖文类型的更多详情,请阅读WordPress.org官方文档。)
同理,如果想将喜欢(like)的默认slug likes改为stars,则:
add_action( 'register_post_type_args', function( $args, $post_type ) {
if ( 'indieblocks_like' === $post_type ){
$args['rewrite']['slug'] = 'stars'; // 新slug
}
return $args;
}, 99, 2 );
indieblocks_like即帖文类型名。
将喜欢/点赞譬喻为分发小星星,倒也蛮风雅的。
上述对functions.php代码的修改,建议通过新设子主题来实现。这样做的好处是,避免主题更新后所有对functions.php代码的修改都被覆盖。
还可以通过Code Snippets插件来插入上述代码,这样做的好处是免去新设子主题之烦劳,还可以在网页前端(相对去后端直接修改functions.php来说)完成全部工作。
插件官方文档里没提及的,还有代码使用后旧链接不更新的可能性。可能有些读者朋友的站点里已经有了存量札记或喜欢,上述修改执行后,存量内容的URL并没有跟着一起变。这时可以考虑:

然后,便可以发现URL全部更新了。
笔者的情况是,站点内并未安装缓存插件,所以在第1步骤即解决了问题。但是如果有安装缓存插件的话,其可能性也是可以想见的。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。