hokoo/wpconnections

WordPress中多对多关系的库

dev-master 2024-09-10 11:50 UTC

README

PHPUnit Tests PHP WordPress Unit Tests

wpConnections允许通过图形连接链接WordPress中的帖子。该库提供了如下连接属性:

  • 方向(从,到)
  • 从帖子ID
  • 到帖子ID
  • 顺序
  • 元数据。

连接属于关系,并且永远不会独立存在。关系具有以下属性:

  • 基数(1-1,1-m,m-1,m-m)
  • 从帖子类型
  • 到帖子类型
  • 方向类型(从,到,双向)
  • 可复制(是否可能有相同的连接)
  • 可封闭(是否可以在从和到中有相同的帖子)。

示例。有四个CPT:magazineissuearticleauthor。杂志帖子可能与一些Issue(一对一类型)有关联,从而使Issue构成杂志。
反过来,Issue又与Article(一对一)有关联。但作者可能与许多Article有关联,而一篇文章可能与许多Author有关联(多对多)。

为什么选择wpConnection?

它可以作为多个安装的库,成为WordPress安装中不同插件的一部分。你需要为你的应用程序创建一个客户端实例。每个客户端都有自己的表和REST API钩子,并且不会影响其他客户端。

好的,我该如何开始使用?

完整文档可在Wiki项目页面上找到。

添加包

composer require hokoo/wpconnections

因此,你必须创建客户端实例...

use iTRON\wpConnections\Client;

$wpc_client = new Client( 'my-app-wpc-client' );

...以及为你的连接创建关系。

use iTRON\wpConnections\Query;
$qr = new Query\Relation();
$qr->set( 'name', 'post-to-page' );
$qr->set( 'from', 'post' );
$qr->set( 'to', 'page' );
$qr->set( 'cardinality', 'm-m' );

$wpc_client->registerRelation( $qr );

好的,现在你可以在关系中创建连接。

$qc = new Query\Connection();
$qc->set( 'from', $post_id_from );
$qc->set( 'to', $post_id_to );

$wpc_client->getRelation( 'post-to-page' )->createConnection( $qc );

由于你初始化了新的客户端,其REST API端点是可用的。

http://cf7tgdev.loc/wp-json/wp-connections/v1/client/my-app-wpc-client/