WordPress API插件

一个WordPress插件,提供机器表示(MR)和AI任务的小型目录,支持块感知摘要、提取和安全块插入。

  • by antunjurkovic-collab
  • PHP
  • 本地部署
  • 更新于
在 GitHub 查看 antunjurkovic-collab/wp-dual-native

使用说明

双重API(WordPress插件)

在WordPress中公开一个干净的机器表示(MR)和一个用于代理AI任务的小目录。非常适合块感知摘要、提取和安全块插入,而无需抓取编辑器HTML。

特性

  • 获取 /wp-json/dual-native/v1/posts/{id} --JSON先生
    • rid、cid(强验证器)、标题、状态、修改/发布、作者、特色图片
    • 类别/标签(按ID排序)、块[]、core_content_text、word_count
    • 链接:human_url、api_url、md_url、public_api_url、public _md_url
    • ETag(=cid)、上次修改和内容摘要(RFC 9530)对200个响应的分析
  • 获取 /wp-json/dual-native/v1/catalog --用于取零的小索引
    • 查询参数: cursor=ISO 或 since=ISO (增量同步), status=draft|publish|any, types=post,page,attachment (逗号分隔列表)
    • 退货: {count, cursor, items:[{rid, cid, modified, status, title, hr, mr}]}
    • 例子: /catalog?types=attachment&status=inherit (媒体库)或 /catalog?cursor=2025-11-20T00:00:00+00:00 (自11月20日以来的变化)
  • 获取 /wp-json/dual-native/v1/posts/{id}/md --Markdown MR(文本/标记;最后字节上的ETag)
  • 发布 /wp-json/dual-native/v1/posts/{id}/blocks --插入一个或多个块
    • 主体: { insert: "append"|"prepend"|"index", index?: number, block?: {...} or blocks?: [{...}] }
    • 支持:段落、标题(级别)、列表(排序、项目[])、图像(url、altText)、代码、引用
    • 安全写入(可选):发送 If-Match: "<cid>" 防止过时写入(如果不匹配,则为412)
    • 写回复包括新的 ETag 标题(当前 cid)因此,客户可以在不进行额外阅读的情况下进行连锁编辑
  • 获取 /wp-json/dual-native/v1/posts/{id}/ai/suggest --启发式(或外部)总结+标签建议
  • 编辑器侧栏“双原生AI”:在光标(H2)处插入,预览MR,建议并应用摘要,复制MR JSON,打开Markdown MR

🧩 生态系统集成

这个插件是可组合的。虽然它作为一个独立的数据层工作,但当连接到官方的WordPress AI堆栈时,它变得更加强大。

使用API或WP AI客户端的能力? 看看 双重本土能力桥梁.

这个插件:

  • 将DNI端点注册为标准 能力 (dni/get-post-mr, dni/insert-blocks, dni/agentic-summarize).
  • 连接 WP AI客户端SDK 到DNI数据层。
  • 启用“代理汇总”工作流(阅读MR→ 通过SDK思考→ 安全写入)。

安装

  1. 复制 wp-dual-native/ 进入 wp-content/plugins/
  2. 在WP管理员中激活→ 插件
  3. 打开块编辑器→ 找到“双原生AI”面板(侧栏)

安全和权限

  • 经过身份验证的MR/MD和目录需要登录(可以登录的用户 edit_post)以及REST随机数
  • 写入端点需要 edit_post +nonce;CID在以下时间失效 save_post
  • 公开阅读(可选):
    • 获取 /wp-json/dual-native/v1/public/posts/{id} (JSON先生)
    • 获取 /wp-json/dual-native/v1/public/posts/{id}/md (Markdown)
    • 门与 dni_can_read_public_mr (默认:仅发布)

REST示例

  • 有条件的MR:
curl -i https://example.com/wp-json/dual-native/v1/posts/123
curl -i -H 'If-None-Match: "sha256-..."' https://example.com/wp-json/dual-native/v1/posts/123  # 304
  • 使用索引+如果匹配进行安全写入:
curl -i -X POST -H 'Content-Type: application/json' -H 'X-WP-Nonce: <nonce>' -H 'If-Match: "sha256-..."' \
  -d '{"insert":"index","index":2,"block":{"type":"core/heading","level":2,"content":"Key Takeaways"}}' \
  https://example.com/wp-json/dual-native/v1/posts/123/blocks

决定论与诚信

  • CID= sha256-<hex> 超规范MR(排序键),仅排除 cid 默认情况下
  • 分类(类别/标签)在哈希之前按ID排序,以确保确定性CID,而不管DB顺序如何
  • 200条回复包括 Content-Digest: sha-256=:<base64>: (SHA-256字节的标准Base64)和 Last-Modified
  • Markdown响应由插件在服务时间哈希和发出的确切字节提供,以确保摘要与在线内容的奇偶性
  • 要从CID中排除易失性字段(例如日期):
add_filter('dni_cid_exclude_keys', function(array $keys){
  // Also exclude 'links' (environment/permalink specific) to keep CIDs portable
  return array_merge($keys, ['modified','published','status','links']);
}, 10, 1);

过滤器和可扩展性

  • dni_mr($mr, $post_id):突变/富集MR
  • dni_blocks($blocks, $post_id, $post) 和 dni_map_block($out, $raw_block):扩展块映射
  • dni_render_block_html($html, $block):为写入API呈现自定义块
  • dni_markdown($md, $mr, $req):后处理Markdown
  • dni_catalog_args($args, $req):包括CPT/状态
  • 权限: dni_can_read_mr($allow, $id, $req), dni_can_read_public_mr($allow, $id, $req)
  • 人工智能: dni_ai_suggest($suggestion, $mr, $req)

代理集成(克劳德桌面/MCP)

此插件包括一个生产就绪 模型上下文协议(MCP) 服务器,允许AI代理(如Claude Desktop)安全地读取、写入和分析您的WordPress网站。

快速开始

  1. 安装依赖项:

    cd tools/mcp-server
    npm install
    
  2. 配置: 将此添加到您的Claude Desktop配置中:

    • Mac/Linux: ~/Library/Application Support/Claude/claude_desktop_config.json
    • 窗户: %APPDATA%\Claude\claude_desktop_config.json

    Mac/Linux:

    {
      "mcpServers": {
        "wordpress": {
          "command": "npx",
          "args": ["-y", "tsx", "/absolute/path/to/wp-dual-native/tools/mcp-server/src/index.ts"],
          "env": {
            "WP_URL": "https://your-site.com",
            "WP_USER": "your-username",
            "WP_PASSWORD": "your-application-password"
          }
        }
      }
    }
    

    窗户:

    {
      "mcpServers": {
        "wordpress": {
          "command": "npx",
          "args": ["-y", "tsx", "C:\\Users\\YourName\\Desktop\\wp-dual-native\\tools\\mcp-server\\src\\index.ts"],
          "env": {
            "WP_URL": "https://your-site.com",
            "WP_USER": "your-username",
            "WP_PASSWORD": "your-application-password"
          }
        }
      }
    }
    
  3. 运行: 重新启动克劳德桌面。您现在可以要求Claude:

    • “阅读最新帖子并修复任何格式错误。” (自愈)
    • “分析我最近50篇帖子的发布频率。” (数据科学)

有关MCP工具和Python集成的完整文档,请参阅 工具/mcp服务器/README.md.

基准与验证

我们包括一套Python工具来验证性能声明和API的完整性。

  • tools/validator/benchmark_api_vs_dni.py:针对标准WordPress REST API运行实时a/B测试,以测量有效负载大小和令牌节省。
  • tools/validator/dual_native_validate.py:验证ETag/CID奇偶校验和RFC 9530内容摘要的完整性。

性能结果:

  • 有效载荷减小56% (17.94 KB→ 8.65 KB)
  • 代币减少56% (4,593 → 2,214)
  • 响应速度提高92% (96毫秒→ 8ms服务器端)
  • 数据库查询减少56% (18 → 8)

看 BENCHMARK.md 用于人工智能成本分析和 性能.md 基础设施指标。

查看验证器文档


常见问题解答

Q: 这适用于经典编辑器吗?

A. 是的,但粒度减小了。经典帖子在机器表示(MR)中显示为单个 core/freeform 块。

但是,安全写入API仍然有效。Agent可以将新的结构化块附加到经典帖子中,有效地创建一个混合帖子,在保留原始HTML的同时添加现代的AI生成块。