pfefferle/wordpress-webmention

WordPress的Webmention插件 https://wordpress.org/plugins/webmention/

资助包维护!
notiz.blog/donate

安装: 66

依赖: 1

建议者: 0

安全: 0

星星: 116

关注者: 14

分支: 31

开放问题: 61

语言:HTML

类型:wordpress-plugin


README

贡献者: pfefferle, dshanske, indieweb
捐赠链接: https://notiz.blog/donate/
标签: webmention, pingback, trackback, linkback, indieweb
至少需要 4.9
已测试至 6.6
稳定标签 5.3.3
需要PHP 7.0
许可: MIT
许可URI: https://open-source.org.cn/licenses/MIT

启用跨网络的对话。

描述

当你链接到一个网站时,你可以发送一个Webmention来通知它,然后该网站可能会显示你的帖子作为评论、喜欢或其他响应,然后 presto,你就在一个网站和另一个网站之间进行对话了!

Webmention是一个通知,表明一个URL链接到另一个URL。发送Webmention不仅限于博客文章,还可以用于其他类型的内容和响应。

例如,响应可以是活动的RSVP,表示某人“喜欢”另一篇帖子,另一篇帖子的“书签”,以及其他许多内容。Webmention使得这些交互可以在不同的网站之间发生,从而实现分布式社交网络。

Webmention插件支持Webmention协议,为你提供发送和接收Webmention的支持。它提供了一个简单的内置展示。

常见问题解答

什么是Webmention?

Webmention是一种简单的方式,当你在自己的网站上链接到它时,可以自动通知任何URL。从接收者的角度来看,这是一种请求通知其他网站链接到它的方式。

这听起来像Pingback或Trackback

Webmention是Pingback或Trackback的更新/替代品。与较老的协议不同,该规范由W3C推荐,并且有活跃的社区个人在使用它。

我如何发送和接收Webmention?

在WordPress的设置 --> 讨论页面

  • 在Webmention设置页面,决定您想为哪些帖子类型启用Webmention。默认情况下,是帖子页面。
  • 设置一个页面,将主页提及重定向到该页面。这将自动启用该页面的Webmention。
  • 如果您想在评论部分启用Webmention表单,请勾选框。

您可以使用send_webmention($source, $target)函数并传递源和目标,或者您可以通过触发动作,如do_action('send_webmention', $source, $target)

我如何为自定义帖子类型支持Webmention?

当声明您的自定义帖子类型时,通过将Webmention支持包含在您的register_post_type条目中,为Webmention添加帖子类型支持。这也可以在Webmention设置中添加。

我如何为附件发送/接收Webmention?

您可以在Webmention设置中启用接收附件的Webmention。您可以在设置中启用发送媒体链接的Webmention。请注意,大多数接收Webmention的实体不支持接收图像、音频和视频文件。为了在WordPress中接收它们,必须在Web服务器级别添加Webmention端点头。

如何处理对我的主页或存档页面的Webmention?

Webmention应该允许在博客的所有URL上,然而WordPress不支持这一点,因为只有帖子可以有附加的评论。当前插件只处理帖子的Webmention,并允许您设置一个页面来接收主页提及。

虽然这不是自动完成的,但通过提供一个显示收集提及的帖子/页面,添加对存档和网站URL的支持非常简单。插件为此提供了一个简单的过滤器。

在下面的示例中,如果没有返回页面,它将发送提及到一个通配符帖子。您也可以为每个URL有独特的帖子。

function handle_other_webmentions($id, $target) {
  // do nothing if id is set
  if ($id) {
    return $id;
  }

  // return "default" id if plugin can't find a post/page
  return 9247;
}
add_filter("webmention_post_id", "handle_other_webmentions", 10, 2);

缓存插件会影响我的使用吗?

Webmention端点的URL,您可以在页面的源中查看,应排除在服务器或插件缓存之外。

由于Webmention使用REST API端点系统,大多数最新的缓存插件应该默认排除它。

为什么这个插件有关于头像的设置?

Webmention具有作为丰富评论的功能。这包括显示头像。如果发现头像,将存储其URL。这可能来自媒体库中的某个东西或文件的URL。如果文件损坏,它将存储默认Gravatar图像的本地副本。

我网站的一些页面没有Webmention头信息

只有当特定URL有Webmention可用时,才会显示Webmention头信息。如果您想无论如何都显示它,可以将以下内容添加到您的wp-config.php文件中。

define( 'WEBMENTION_ALWAYS_SHOW_HEADERS', 1 );

我如何自定义我的webmention显示?

此插件包含了一些增强功能,以增强内置的WordPress评论系统,同时允许现有方法提供自定义。它通过使用自定义评论遍历器来修改经典默认设置,以考虑Webmention。默认情况下,许多主题提供了对wp_list_comments函数的定制回调。此插件增加了对此的支持。首先,自定义回调参数通常是一个包含函数名称的字符串。我们增强了它在那种情况下表现得像正常情况,但如果传递了一个数组,则允许根据数组的键或默认的'所有'键进行特定回调。这意味着每种评论类型,即每种Webmention类型或其他类型,都可以有自己的自定义回调。

它引入了默认html5评论函数的新版本,添加了正确的microformats2标记,并为webmention添加了适当的网站引用,例如Bob @ Example.Com,以及一个钩子webmention_comment_metadata,它将评论对象作为唯一参数提供,以添加任意元数据。这将被主题中完成的任何自定义评论渲染所覆盖。

插件中有一个选项,可以显示不判定为回复或评论的webmention,或者将它们作为仅头像的列表单独显示。覆盖了wp_list_comments函数,以允许avatar_only选项,这将渲染此内容,还有一个选项overlay,它会在图标上叠加反映反应类型。反应是webmention类型,如喜欢,它没有文本组件。如果您选择将它们显示为评论,文本将显示作者喜欢这篇文章

并非所有显示选项都可以是设置,但我们正寻求提供一些简单的选项,如果需要的话,可以在主题中进行自定义。

变更日志

项目和支持在github上维护,地址为 pfefferle/wordpress-webmention

5.3.3

  • 即使评论已关闭,也要加载CSS,因为Webmentions会忽略该设置
  • 改进 version() 方法

5.3.2

  • 几个小修复

5.3.1

  • 修复致命错误

5.3.0

  • 修复FSE主题中的facepile
  • 修复远程删除
  • 更新Readme和资源

5.2.6

  • 修复对comment_parent的null引用

5.2.5

  • 当回退时,Comment Walker调用的是常规版本而不是HTML5版本的评论函数。

5.2.4

  • 修复致命PHP错误

5.2.3

5.2.2

  • 改进回退处理,避免将“匿名”作为帖子作者

5.2.1

  • 修复内置评论类型被拒绝的问题

5.2.0

  • 不要绕过垃圾邮件过滤器
  • 支持源更新通知
  • 添加实验性头像存储

5.1.9

  • 仅对Webmention和仅在前端替换 comment_link

5.1.8

  • 仅对有源的Webmention替换 comment_link

5.1.7

  • 修复WP解析器中的致命错误

5.1.6

  • 允许变量为null。

5.1.5

  • 恢复facepile的溢出选项,这次使用details标签
  • 添加用于查找WordPress REST API的HTML链接发现
  • 加载作者页面以在只提供URL时找到姓名/照片
  • 修复时区问题,时间未正确转换为网站时间
  • 引入webmentions_open函数,该函数确定帖子是否开放Webmention。目前是围绕pings_open的一个包装器
  • 其他小修复

5.1.4

  • 修复:避免在不需要时队列Webmention的CSS样式表。
  • 修复:支持嵌套评论。
  • 添加:客户端URL验证。

5.1.3

  • 修复时区问题导致异常

5.1.2

  • 移除内置WordPress过滤,改为插件过滤传入的Webmention。
  • 如果内容很长且类型为提及,尝试使用摘要或名称而不是完整内容作为显示。
  • 修复meta覆盖mf2的问题
  • 改进JSON-LD处理器

5.1.1

  • 多个解析器/处理器修复
  • 移除不必要的comments.php加载
  • 一些工具更新

5.1.0

  • 添加mf2作者迁移
  • 包括重复检查的垃圾邮件和存档状态
  • 更新测试并使u-url属性对于帖子类型发现为可选
  • 更新重复检查
  • 仅对新评论设置创建时间
  • 允许从批量操作菜单刷新Webmention
  • 移除Gravatar缓存
  • 许多小改进和修复

5.0.0

  • 代码库的重构
  • 引入PHP命名空间
  • 引入新的解析器,如果Microformats不足以渲染评论,则回退到WordPress REST API、JSON-LD或HTML元标签。
  • 在“工具”下引入Webmention解析的调试器/测试工具
  • Webmention不再作为提及类型的评论存储,而是作为自定义评论类型存储
  • 引入新的简化表示代码,为未来的可选自定义模板提供支持

4.0.9

  • 修复XSS问题

4.0.8

  • 添加对srcsetonerror处理(感谢@florianbrinkmann进行测试)

4.0.7

  • 重新添加对损坏图像的onerror处理(感谢@snarfed)

4.0.6

  • 更新要求

4.0.5

  • 在适当测试/使用之前移除Webmention_Notification

4.0.4

  • 更新依赖项
  • 修复WordPress警告

4.0.3

  • 将评论批准列表和自动批准移动到由wp_new_comment函数调用的wp_allow_comment函数。
  • 对头像函数进行小修复,以考虑到评论有一个空的评论类型

4.0.2

  • 当存储的头像是Gravatar时,使用缓存

4.0.1

  • 只有当 pings_open 时才显示Webmention表单
  • 即使禁用评论,也显示Webmention表单

4.0.0

  • 添加设置以通过公共帖子类型启用Webmention支持
  • 添加设置以禁用发送媒体链接...附加到图像、视频或音频标签的URL
  • 从发送Webmention到帖子内容中的所有URL切换到只有正确HTML标记的URL
  • 支持处理存储在元数据中的头像
  • 如果没有电子邮件,则提供本地匿名头像,并缓存定义时间段内是否存在Gravatar
  • 在评论元数据中存储Webmention协议属性
  • 如果URL不支持Webmention,则不显示Webmention头
  • 更新Webmention元模板以使用单独的文件,该文件在编辑评论屏幕上显示
  • 最低PHP版本提升到5.4。WordPress当前最低版本为5.6,但我们支持回4.9版本
  • 出于兼容性原因,加载一个版本的 is_avatar_comment_type(5.1版引入)和 get_self_link(5.3版引入),以供此插件使用
  • 改进所有设置和模板表单(感谢@tw2113)

3.8.11

  • 小错误修复

3.8.10

  • 基于使用插件意味着您想要Webmention而不是默认pingback设置,始终启用Webmention
  • 修复基于域的自动批准

3.8.9

  • 小的HTML模板更改

3.8.8

  • 添加NodeInfo(2)支持

3.8.7

  • 修复设置页面上 webmention_avatars 的默认值

3.8.6

  • 修复 webmention_avatars 的默认值

3.8.5

  • 为“显示评论表单”设置设置正确的默认值

3.8.4

  • 存储vouch属性
  • 默认禁用vouch支持。由于Vouch是实验性的,只能通过添加 define( 'WEBMENTION_VOUCH', true ) 来启用

3.8.3

  • 将设置中的头像设置为考虑null与yes相同

3.8.2

  • 修复PHP问题

3.8.1

  • 更新GDPR文本建议
  • 修复旧的设置链接
  • 使Webmention评论表单文本可定制(#175)
  • 更好地处理 wp_add_privacy_policy_content 调用

感谢Sebastian Greger

3.8.0

  • 添加GDPR推荐文本
  • 实现帮助标签
  • 表单改进
  • 域名允许列表
  • 添加头像设置控件
  • 文本改进

感谢Sebastian Greger、David Shanske和Chris Aldrich

3.7.0

  • 添加“线程式评论”支持

3.6.0

  • 发送删除Webmention
  • 接收删除Webmention

3.5.0

  • 添加非API调用时更友好的HTML视图
  • 添加德语翻译(感谢@deponeWD)
  • 确保禁用旧的 webmention-for-comments 插件

3.4.1

  • 添加过滤器以允许设置Webmention表单文本
  • 由于新默认选项未在仅管理员的情况下设置,将注册设置移动到init
  • 由于评论数组过滤,添加 edit_webmention 钩子
  • 在编辑评论页面上显示Webmention元数据

3.4.0

  • 添加设置链接
  • 添加到主页Webmention页面的链接
  • 为主页Webmention启用ping

3.3.0

  • 添加主页提及设置(感谢 @dshanske)
  • 由于4.8版本发布,删除了过时的函数

3.2.1

  • 将端点发现移动到functions.php
  • 添加缺失的i18n字符串
  • 删除polyfill

3.2.0

  • 启用页面支持的选项
  • 允许自定义帖子类型声明支持Webmention作为功能,这将启用ping。
  • 从预处理期间添加新元属性中删除,因为这些属性在语义链接回增强后添加
  • 将新元属性移动到构建到Webmention代码中
  • 在评论元数据中存储Webmention源,但如果没有设置,则回退到检查 comment_author_url
  • 在评论元数据中存储Webmention创建时间,因为评论时间被语义链接回覆盖,允许确定评论是否已修改。

3.1.1

  • 对源和目标进行URL编码/解码
  • Webmention评论类型现在声明支持头像
  • webmention_target_urlwebmention_target_fragment 注册元键
  • 存储目标URL而不是从固定链接派生,以确保持久性
  • 存储目标片段以支持片段。还可以支持当回复是对评论时进行的评论。

3.1.0

3.0.1

  • 再次在每个页面上显示端点发现,以防止出现几个问题。

3.0.0

  • 插件重构为使用API基础设施。
  • 现在在网页浏览器中访问端点会返回Webmention表单。
  • 插件现在符合草稿规范,尽管仍然是同步的。
  • 弃用webmention_title和webmention_content过滤器,转而使用单一针对Webmention评论数据的过滤器。
  • webmention_post_send动作现在在所有发送Webmention的尝试上触发,而不仅仅是成功的尝试。允许添加日志功能。
  • 支持在发送Webmention时添加额外的参数
  • 修复与Ultimate Category Excluder插件的兼容性问题。

2.6.0

  • 移除了通过get_meta_tags重复请求HTML
  • 重构
  • 限制为同一域名

2.5.0

  • 添加salmon/crossposting-extension支持(感谢 @singpolyma)
  • 通过设置禁用自ping
  • 不取消已经批准的Webmention的批准(感谢 @singpolyma)
  • 一些代码改进

2.4.0

  • 切换到WordPress编码标准

2.3.4

  • 一些修复和改进

2.3.3

  • 为Webmention端点添加了过滤器(添加/要求额外参数:#39#41

2.3.2

  • webmention_post_send添加了更多参数(感谢 @snarfed)
  • 移除了Webmentions的重新安排(感谢 @snarfed)

2.3.1

  • 如果为帖子禁用了Pingbacks/Webmentions,则使用错误代码403而不是500(感谢 @snarfed)
  • 添加了webmention_comment_parent过滤器

2.3.0

  • 更友好的titlecontent发现
  • webmention_links过滤器添加了post-id
  • 改进了publish_post_hook函数
  • 禁用了洪水控制
  • 更友好的响应值
  • 一些更多的过滤器/动作
  • 添加了一个默认请求"action",以更加灵活,并处理更多在帖子或页面上的提及
  • 很多小的修复

2.2.0

  • 防止自ping
  • 添加了对https和http的支持
  • 优化了一些方法

2.1.4

  • 修复了伪钩子

2.1.3

  • 修复了一些警告

2.1.2

  • 现在可以打包使用

2.1.1

  • 对Webmention端点提供了更友好的反馈

2.1.0

  • 更友好的titlecontent发现
  • webmention_links过滤器添加了post-id
  • 改进了publish_post_hook函数

2.0.1

  • 一些小的修复
  • 更友好的摘录提取器

2.0.0

初始发布

安装

遵循安装WordPress插件的正常说明。

自动插件安装

要使用内置插件安装程序添加WordPress插件,请访问添加新插件

  1. 转到插件 > 添加新插件
  2. 搜索插件框中输入"webmention"。
  3. 找到您要安装的WordPress插件。
    1. 点击详情获取有关插件的信息以及您可能希望打印或保存的说明,以帮助设置插件。
    2. 点击现在安装安装WordPress插件。
  4. 结果安装屏幕将列出安装成功或安装过程中出现的问题。
  5. 如果成功,点击激活插件以激活它,或点击返回插件安装程序进行其他操作。

手动插件安装

在某些情况下,手动安装WordPress插件是合适的。

  • 如果您想控制WordPress插件的安装位置和过程。
  • 如果您的服务器不允许自动安装WordPress插件。
  • 如果您想尝试最新开发版本

手动安装WordPress插件需要熟悉FTP,并且要意识到如果安装与当前版本不兼容或来源不可靠的WordPress插件,可能会使您的网站处于风险之中。

在继续之前,请完全备份您的网站。

要手动安装WordPress插件

  • 将您的WordPress插件下载到桌面。
  • 如果下载为zip存档,请将插件文件夹解压到桌面。
  • 使用您的FTP程序,将插件文件夹上传到在线WordPress目录中的wp-content/plugins文件夹。
  • 转到插件屏幕,并在列表中找到新上传的插件。
  • 点击激活以激活它。

升级通知

5.0.0

此版本是对代码的完整重写,并将语义链接插件合并在一起。您应该为此升级卸载语义链接插件。请通过GitHub提交升级问题。

警告:在升级之前,请备份您的数据库。此版本更改了Webmentions的存储方式。

3.0.0

此更新使插件符合草案标准。因此,一些过滤器和操作已更改。在更新之前,请检查任何相关代码。

2.0.0

此插件不支持IndieWebCamp Wiki中提到的微表单功能。要启用语义链接,您必须使用https://github.com/pfefferle/wordpress-semantic-linkbacks