Wordpress Post 通过 Slack 完整 HTML 的通知
Wordpress Post Notification with full HTML via Slack
当我在 Wordpress 中创建 post 时,一个 slack 通知插件使用 slack api 向频道发送通知。通知工作正常。我想要做的是将 post 的内容发送到频道,包括格式和 HTML。我可以轻松地将 post 的内容获取到频道,但我正在努力获取要格式化的内容。这可能是 Slack 的问题,但我不确定。
这是代码。
`$message = apply_filters('the_content',$post->post_content);`
我不确定这是否可能,但我想我会问。
Slack 目前仅支持使用 Slack 特定的标记格式 markup language。
它不支持 HTML 格式的消息,也不提供 HTML 到 Slack 标记的任何自动转换(顺便说一句,这也没有多大意义,因为 Slack 的标记只有基本格式功能,而不是像表格、字体大小等高级功能)此外,您还可以添加 attachments,这会为您提供一些额外的格式设置选项,例如添加图像。
此外,Slack 支持更复杂的格式,即所谓的“posts”。但是,API 不支持 post,所以这里也没有帮助。
剩下三个选项:
- 将 post 的 HTML 转换为 Slack 标记加附件
- 将 post 的 HTML 转换为图像,然后 post
松弛
- 将 post 的 HTML 转换为 PDF,然后 post
松弛
据我所知,现在有很多 HTML 到图像或 PDF 的转换器,所以我建议使用第二个或第三个选项。
图像和 PDF 都将在频道内显示,Slack 有自己的查看器来显示详细信息。图像更容易处理,但 PDF 为您提供更多选项和更好的渲染结果。 PDF 还将在 HTML.
中保留链接
尝试参考这个 repo 它可能会有所帮助我想你可以只更改一些代码或从那里获取一些可能有帮助的东西。
Edit:
如果您想用 post 的类似内容通知 slack,那是不可能的,因为 slack 只接受具有特定结构和键的 json。另外 slack 不接受降价。
结构化内容参考:
Block Kit Builder
如果您尝试使用图像或 pdf 版本的内容进行通知,它的尺寸可能较小。
我建议,为什么不使用 wordpress 提供的函数获取 post 内容然后使用 json_encode
以 json 格式传递它并使用 Block Kit Builder 如果你想要的内容将长得像。
$data_encoded = array(
"payload" => json_encode(create_message())
);
$post_on_slack = wp_remote_post($webhook_endpoint, array(
'method' => 'POST',
'headers' => array(),
'body' => $data_encoded,
)
);
对于 $webhook_endpoint 你可以参考 repo 了解如何获取它。
function create_message() {
$data = array(
// structure here depends on what your Block Kit Builder
);
return $data;
}
我创建的第一个代码块可以包装到函数中,这样你就可以通过钩子调用它,比如
add_action("save_post","you_function");
当我在 Wordpress 中创建 post 时,一个 slack 通知插件使用 slack api 向频道发送通知。通知工作正常。我想要做的是将 post 的内容发送到频道,包括格式和 HTML。我可以轻松地将 post 的内容获取到频道,但我正在努力获取要格式化的内容。这可能是 Slack 的问题,但我不确定。
这是代码。
`$message = apply_filters('the_content',$post->post_content);`
我不确定这是否可能,但我想我会问。
Slack 目前仅支持使用 Slack 特定的标记格式 markup language。
它不支持 HTML 格式的消息,也不提供 HTML 到 Slack 标记的任何自动转换(顺便说一句,这也没有多大意义,因为 Slack 的标记只有基本格式功能,而不是像表格、字体大小等高级功能)此外,您还可以添加 attachments,这会为您提供一些额外的格式设置选项,例如添加图像。
此外,Slack 支持更复杂的格式,即所谓的“posts”。但是,API 不支持 post,所以这里也没有帮助。
剩下三个选项:
- 将 post 的 HTML 转换为 Slack 标记加附件
- 将 post 的 HTML 转换为图像,然后 post 松弛
- 将 post 的 HTML 转换为 PDF,然后 post 松弛
据我所知,现在有很多 HTML 到图像或 PDF 的转换器,所以我建议使用第二个或第三个选项。
图像和 PDF 都将在频道内显示,Slack 有自己的查看器来显示详细信息。图像更容易处理,但 PDF 为您提供更多选项和更好的渲染结果。 PDF 还将在 HTML.
中保留链接尝试参考这个 repo 它可能会有所帮助我想你可以只更改一些代码或从那里获取一些可能有帮助的东西。
Edit:
如果您想用 post 的类似内容通知 slack,那是不可能的,因为 slack 只接受具有特定结构和键的 json。另外 slack 不接受降价。
结构化内容参考: Block Kit Builder
如果您尝试使用图像或 pdf 版本的内容进行通知,它的尺寸可能较小。
我建议,为什么不使用 wordpress 提供的函数获取 post 内容然后使用 json_encode
以 json 格式传递它并使用 Block Kit Builder 如果你想要的内容将长得像。
$data_encoded = array(
"payload" => json_encode(create_message())
);
$post_on_slack = wp_remote_post($webhook_endpoint, array(
'method' => 'POST',
'headers' => array(),
'body' => $data_encoded,
)
);
对于 $webhook_endpoint 你可以参考 repo 了解如何获取它。
function create_message() {
$data = array(
// structure here depends on what your Block Kit Builder
);
return $data;
}
我创建的第一个代码块可以包装到函数中,这样你就可以通过钩子调用它,比如
add_action("save_post","you_function");