automattic/jetpack-sync

允许同步到WP.com基础设施所需的一切。

安装次数: 531,288

依赖关系: 16

建议者: 0

安全: 0

星星: 4

关注者: 4

分支: 4

类型:jetpack-library

v3.13.0 2024-09-16 14:37 UTC

This package is auto-updated.

Last update: 2024-09-20 20:46:17 UTC


README

允许同步到WordPress.com基础设施所需的一切。

开始使用

开始使用同步的最简单方法是使用 Jetpack 配置包

配置所有同步模块启用的同步

假设有一个 $config 实例的 Automattic/Jetpack/Config,以下代码将配置启用了所有模块的同步

$config->ensure( 'sync' )

配置具有有限功能的同步

可以通过提供要同步的数据的显式列表来限制同步功能。

使用配置包,可以将这些数据设置作为数组传递给 syncensure 调用。

以下是一个示例

$config->ensure(
    'sync',
    array( 
        'jetpack_sync_options_whitelist'  => array( 'my_plugin_option' ),
    )
);

或者,如果您更喜欢直接使用同步包,您可以使用 Main::set_sync_data_options 方法设置同步数据设置。例如

Jetpack\Sync\Main::set_sync_data_options(
    array( 
        'jetpack_sync_options_whitelist'  => array( 'my_plugin_option' ),
    )
); 

可配置的同步数据设置

以下是所有可配置的同步数据设置的列表

jetpack_sync_modules

要启用的同步模块的列表。默认情况下,所有同步模块都已启用。您可以通过以下方式传递同步模块数组来覆盖此行为

$config->ensure(
	'sync',
	array(
		'jetpack_sync_modules' => array(
			'Automattic\\Jetpack\\Sync\\Modules\\Posts', // Only sync Post related data.
		)
	)
);

需要注意的是,我们认为某些同步模块对于同步的正常运行是必需的,因此以下模块将始终启用,无论配置如何

  • Automattic\\Jetpack\\Sync\\Modules\\Options
  • Automattic\\Jetpack\\Sync\\Modules\\Callables
  • Automattic\\Jetpack\\Sync\\Modules\\Constants
  • Automattic\\Jetpack\\Sync\\Modules\\Full_Sync_Immediately
  • Automattic\\Jetpack\\Sync\\Modules\\Stats
  • Automattic\\Jetpack\\Sync\\Modules\\Updates

注意:同步当前仅支持配置默认同步模块的列表。任何同步已条件性加载的模块,如 WooCommerceSearch,都是不可配置的。

jetpack_sync_options_whitelist / jetpack_sync_options_contentless

由同步选项模块控制,该模块是必需的。您可以通过指定以下显式选项列表来限制要同步的站点选项

$config->ensure(
    'sync',
    array( 
        'jetpack_sync_options_whitelist' => array( 'my_plugin_option' ),
    )
);

需要注意的是,我们认为某些选项对于同步的正常运行是必需的,因此以下选项将始终同步,无论配置如何

  • jetpack_sync_non_blocking,// 与同步相关的选项
  • jetpack_sync_non_public_post_stati,// 与同步相关的选项
  • jetpack_sync_settings_comment_meta_whitelist,// 与同步相关的选项
  • jetpack_sync_settings_post_meta_whitelist,// 与同步相关的选项
  • jetpack_sync_settings_post_types_blacklist,// 与同步相关的选项
  • jetpack_sync_settings_taxonomies_blacklist,// 与同步相关的选项
  • jetpack_sync_settings_dedicated_sync_enabled,// 与同步相关的选项
  • blog_charset,// 通用站点选项
  • blog_public,// 通用站点选项
  • blogdescription,// 通用站点选项
  • blogname,// 通用站点选项
  • permalink_structure,// 通用站点选项
  • stylesheet,// 通用站点选项
  • time_format,// 通用站点选项
  • timezone_string,// 通用站点选项
  • active_plugins,// 通用站点选项

传递选项列表将导致同步这些选项以及必需的选项。

传递空数组将仅同步必需的选项。

不配置此设置将导致同步所有默认选项,如同步定义的(请参阅 Automattic\Jetpack\Sync\Defaults::$default_options_whitelist

相同的逻辑适用于我们同步的“无内容”选项列表。对于这些选项,我们**不**同步内容,只同步选项名称——这对于不需要同步内容的敏感信息很有用。

这里的例外是,没有必需的选项。因此,传递一个空数组将导致**不**同步任何无内容选项。

不配置此设置将导致同步所有默认的无内容选项,这些选项由同步定义(请参阅Automattic\Jetpack\Sync\Defaults::$default_options_contentless)。

jetpack_sync_callable_whitelist / jetpack_sync_multisite_callable_whitelist

由同步可调用模块控制,该模块是必需的。您可以指定以下显式调用列表来限制同步的调用:

$config->ensure(
    'sync',
    array(
	    'jetpack_sync_callable_whitelist' => array(
			'my_plugin_settings' => array( 'My_Plugin_Class', 'get_settings' ),
		),
	)
);

在配置调用时,您需要传递一个关联数组,其中键是您的调用名称,值是对应的回调函数。请注意,我们认为以下调用列表对于同步正确运行是必需的,因此无论配置如何,以下调用都将同步:

  • site_url
  • home_url
  • get_plugins
  • get_themes
  • paused_plugins
  • paused_themes
  • timezone
  • wp_get_environment_type
  • wp_max_upload_size
  • wp_version
  • jetpack_connection_active_plugins // 连接相关调用

传递调用列表将导致同步这些调用以及必需的调用。

传递一个空数组将导致仅同步必需的调用。

不配置此设置将导致同步所有默认调用,如同步定义(请参阅Automattic\Jetpack\Sync\Defaults::$default_callable_whitelist)。

相同的逻辑适用于我们同步的多站点调用列表。

这里的例外是,没有必需的选项。因此,传递一个空数组将导致**不**同步任何多站点调用。

不配置此设置将导致同步所有默认的多站点调用,如同步定义(请参阅Automattic\Jetpack\Sync\Defaults::$default_multisite_callable_whitelist)。

jetpack_sync_constants_whitelist

由同步常量模块控制,该模块是必需的。您可以指定以下显式常量列表来限制同步的常量:

$config->ensure(
    'sync',
    array(
	    'jetpack_sync_constants_whitelist' => array(
			'MY_PLUGIN_CONSTANT'
		),
	)
);

请注意,我们认为以下常量列表对于同步正确运行是必需的,因此无论配置如何,以下常量都将同步:

  • ABSPATH
  • ALTERNATE_WP_CRON
  • ATOMIC_CLIENT_ID
  • AUTOMATIC_UPDATER_DISABLED
  • DISABLE_WP_CRON
  • DISALLOW_FILE_EDIT
  • DISALLOW_FILE_MODS
  • EMPTY_TRASH_DAYS
  • FS_METHOD
  • IS_PRESSABLE
  • PHP_VERSION
  • WP_ACCESSIBLE_HOSTS
  • WP_AUTO_UPDATE_CORE
  • WP_CONTENT_DIR
  • WP_CRON_LOCK_TIMEOUT
  • WP_DEBUG
  • WP_HTTP_BLOCK_EXTERNAL
  • WP_MAX_MEMORY_LIMIT
  • WP_MEMORY_LIMIT
  • WP_POST_REVISIONS

传递常量列表将导致同步这些常量以及必需的常量。

传递一个空数组将导致仅同步必需的常量。

不配置此设置将导致同步所有默认常量,如同步定义(请参阅Automattic\Jetpack\Sync\Defaults::$default_constants_whitelist)。

jetpack_sync_post_meta_whitelist

由同步文章模块控制,该模块不是必需的。这意味着您还需要在jetpack_sync_modules中添加文章模块,否则此设置将被忽略。您可以指定以下显式文章元数据列表来限制同步的文章元数据:

$config->ensure(
    'sync',
    array(
    	'jetpack_sync_modules' => array(
			'Automattic\\Jetpack\\Sync\\Modules\\Posts', // Only sync Post related data.
		),
	    'jetpack_sync_post_meta_whitelist' => array(
			'my_custom_post_meta'
		),
	)
);

传递一个空数组将导致**不**同步任何文章元数据。

不配置此设置将导致同步所有默认的文章元数据,如同步定义(请参阅Automattic\Jetpack\Sync\Defaults::$post_meta_whitelist)。

jetpack_sync_comment_meta_whitelist

由同步评论模块控制,该模块不是必需的。这意味着您还需要在 jetpack_sync_modules 中添加评论模块,否则此设置将被忽略。 您可以通过指定以下显式评论元列表来限制同步的评论元

$config->ensure(
    'sync',
    array(
    	'jetpack_sync_modules' => array(
			'Automattic\\Jetpack\\Sync\\Modules\\Comments', // Only sync Comment related data.
		),
	    'jetpack_sync_comment_meta_whitelist' => array(
			'my_custom_comment_meta'
		),
	)
);

传递空数组将导致不同步任何评论元。

不配置此设置将导致同步所有默认的评论元,如同步定义(请参阅 Automattic\Jetpack\Sync\Defaults::$comment_meta_whitelist

jetpack_sync_capabilities_whitelist

由同步用户模块控制,该模块不是必需的。这意味着您还需要在 jetpack_sync_modules 中添加用户模块,否则此设置将被忽略。 您可以通过指定以下显式评论元列表来限制同步的能力

$config->ensure(
    'sync',
    array(
    	'jetpack_sync_modules' => array(
			'Automattic\\Jetpack\\Sync\\Modules\\Users', // Only sync User related data.
		),
	    'jetpack_sync_capabilities_whitelist' => array(
			'list_users'
		),
	)
);

传递空数组将导致不同步任何能力。

不配置此设置将导致同步所有默认的能力,如同步定义(请参阅 Automattic\Jetpack\Sync\Defaults::$default_capabilities_whitelist

初始完整同步

当站点注册或用户授权时,会开始站点的初始完整同步。

Actions::do_only_first_initial_sync

可以使用 Actions::do_only_first_initial_sync 方法在站点尚未开始完整同步时启动初始完整同步。这在插件需要仅在未由其他插件启动的情况下启动初始完整同步时很有用。

示例

在您的WordPress插件中使用此包

如果您计划在您的WordPress插件中使用此包,我们建议您使用 Jetpack Autoloader 作为您的自动加载器。这将允许与其他使用此包的插件最大限度的互操作性。

安全

需要报告安全漏洞?请访问 https://automattic.com/security/ 或直接访问我们的安全漏洞赏金网站 https://hackerone.com/automattic

许可协议

jetpack-sync 使用 GNU 通用公共许可证 v2(或更高版本) 许可