惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Google DeepMind News
Google DeepMind News
D
DataBreaches.Net
C
Check Point Blog
I
InfoQ
A
About on SuperTechFans
Engineering at Meta
Engineering at Meta
月光博客
月光博客
Recent Announcements
Recent Announcements
酷 壳 – CoolShell
酷 壳 – CoolShell
T
Tailwind CSS Blog
Y
Y Combinator Blog
博客园 - Franky
博客园_首页
罗磊的独立博客
量子位
美团技术团队
T
The Blog of Author Tim Ferriss
Last Week in AI
Last Week in AI
大猫的无限游戏
大猫的无限游戏
爱范儿
爱范儿
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Martin Fowler
Martin Fowler
博客园 - 叶小钗
aimingoo的专栏
aimingoo的专栏

山月

在VS Code配置Obsidian風格Markdown編輯環境 – 山月 在Windows通过LM Studio使用Zotero MCP – 山月 禁用WordPress中Jetpack的AI助手按钮 – 山月 WordPress/MCP Adapter安装与维护指南 – 山月 WordPress服务器权限与所有权配置详解 – 山月 在Windows上為GnuCash啟用線上報價 (Finance::Quote) – 山月 Gitea Docker /var/empty 权限问题除错总结 – 山月 Bookwyrm由0.7.5升级至Production(e217a17)完整过程及疑难解答 – 山月 用正则表达式修改ruby标签 – 山月 为WordPress Syndication Links插件添加新的站点与图标的实现方法 – 山月 进入不断重启的Docker容器的命令行之方法 – 山月 自建Bookwyrm无法查询远端用户?——开启数据库扩展 – 山月 BookWyrm无法增添书本、作者、阅读进度……?——解决数据库自增序列问题 – 山月 俾Docker容器中的应用访问宿主机上的数据库服务 – 山月 QNAP NAS使用者注意!千万莫对MariaDB做这件事…… – 山月 解决Wikibase手动导入数据后无法新建实体之问题 – 山月 辰年再訪神保町 – 山月 PHP-FPM站点池配置调优以解决WordPress过度占用系统资源之问题 – 山月 如果Linux软件包常规升级失败——以python3-update-manager为例 – 山月 解决站点526报错:SSL证书配置错误 – 山月 風挾着陽光來 – 山月 和A.N.R.GHG插件说bye-bye – 山月 WordPress页面链接末尾出现“?swcfpc=1”后缀,是怎么回事? – 山月 安装、维护Monica PRM的一些笔记 – 山月 清理服务器空间的着手点 – 山月 关于Joplin Server文件上传大小上限 – 山月 如何优化PHP文件上传大小:完整指南 – 山月 WordPress站点部分地出现“严重错误”的一些可能的解法 – 山月 批量更改WordPress媒体URL – 山月 自托管WordPress编辑文章出现问题的排查法 – 山月
为Micropub客户端所发内容设置默认post type – 山月
2023-06-12 · via 山月

导入

Micropub简介

Micropub是一个开放的API标准,用于使用第三方客户端在网站(例如WordPress站点)上创建帖子。Web应用程序和本机应用程序(例如iPhone,Android)可以使用Micropub将短贴文、照片、活动资讯(RSVP类的邀约、征集令)或其他类型的贴文发布到自己的网站,类似于Twitter客户端发布到Twitter.com。需要IndieAuth插件进行身份验证。

新建post type的需求

既然是类似Twitter的感觉,那么如果有需要将通过Micropub发送的内容与WordPress传统上会承载的长篇博文相区隔,就可以考虑新建一个post type(贴文类型),专门承载Micropub的内容。

新建post type的方式

为了新建post type,可以考虑安装IndieBlocksShortnotes之类为这类短内容特别设计、优化的插件;

也可以安装MB Custom Post Types & Custom TaxonomiesPost Types Unlimited这类可以通过网页端图形界面来添加post type的插件;

更可以手搓代码,加进function.php(或者加入代码部署插件如Snippets):

add_action( 'init', 'create_post_type' );
function create_post_type() {
    register_post_type( 'my_custom_post',
        array(
            'labels' => array(
                'name' => __( 'My Custom Posts' ),
                'singular_name' => __( 'My Custom Post' )
            ),
            'public' => true,
            'has_archive' => true,
        )
    );
}

(这段代码在WordPress初始化时——init钩子——创建了一个新的post type。这个post类型的名称是my_custom_post,它的标签名称为「My Custom Posts」,并且它是公开的,具有存档。按,register_post_type()函数还有许多可用的参数,可以用于自定义post type。具体参数详情和使用方法,可以参考WordPress官方文档。)

正题

进入正题。一旦具备一个自定义的post type后,就可以考虑为Micropub客户端所发内容设置默认post type了。

首先,往WordPress站点上发内容,Micropub插件是一条较为便捷的路,免去自行配置的烦恼:

插件提供了一系列的过滤器(filters)和钩子(hooks),可以让用户扩展和定制Micropub插件的功能。

根据官方说明,Micropub相关的过滤器为:

micropub_post_type( $post_type = 'post', $input )

该过滤器在创建一个Micropub贴文的过程中被调用。默认情况下,这个过滤器将新帖子的类型设为post,但它也允许将Micropub帖子设置为自定义的帖子类型。

要使用这个过滤器,可以在functions.php文件(或者代码部署插件如Snippets)中添加类似以下的代码:

function your_function_name($post_type, $input) {
    // 在这里可以根据 $input 修改 $post_type 的值
    $post_type = 'post_type_name';
    return $post_type;
}
add_filter('micropub_post_type', 'your_function_name', 10, 2);

your_function_name是函数名称,可以更改为喜欢的任何名称(例如,可以叫做set_custom_micropub_post_type)。10是该函数在执行过滤器时的优先级,2是函数接受的参数数量。如此,每次创建一个Micropub帖文时,它都会将post type设置为 ‘post_type_name’(根据实际情况修改该名字)。

这只是一个简易的实现。也需要根据实际需求来修改your_function_name函数的内部逻辑。