isotopsweden/wp-syncs

Syncs 同步多站之间的文章和术语

安装: 873

依赖项: 0

建议者: 0

安全: 0

星标: 8

关注者: 3

分支: 1

公开问题: 2

类型:wordpress-muplugin

v2.0.0 2021-11-01 03:32 UTC

README

需要PHP 7.0和WordPress 4.6

Syncs 同步多站之间的附件、文章和术语

安装

composer require isotopsweden/wp-syncs

用法

文章类型示例配置

// With `register_post_type`
register_post_type( 'book', [
  'syncs' => true
] );

// With the filter.
add_filter( 'syncs_post_types', function ( $post_types ) {
  return ['page', 'post', 'book'];
} );

分类法示例配置

// With `register_taxonomy`
register_taxonomy( 'group', 'post', [
  'syncs' => true
] );

// With the filter.
add_filter( 'syncs_taxonomies', function ( $taxonomies ) {
  return ['tag', 'category', 'group'];
} );

同步工作原理

创建的数据

当在多站上创建新的文章、术语或附件时,它们将在其他多站上创建,并且所有对象ID将通过一个存储在 syncs 表中的全局同步ID进行链接,如下所示

所有同步ID都存储为对象的元数据,仅因为 WP_Query,当你使用 get_metadata 读取 sync_id 时,它实际上是从 syncs 表中读取的。

更新数据

当在多站上更新文章、术语或附件时,主站是用户正在更新的多站。其他多站上的对象将被删除并重新创建,具有相同的全局同步ID,但具有新的对象ID。这就是为什么你不能使用对象ID作为ID,而是必须使用 sync_id 值。它可以通过 get_metadatasyncs()->get_sync_id( $object_id, $object_type, [$site_id = 0] ) 访问

删除数据

当文章、术语或附件被删除时,它们将在所有多站上被删除,并且 sync_id 也将被删除。

WP CLI

你可以运行 wp syncs sync 来同步一个站点上的所有文章到其他所有站点。

许可证

MIT © Isotop