alleyinteractive/feed-consumer

将外部源和其他数据源导入WordPress


README

贡献者: srtfisher

标签: alleyinteractive, feed-consumer, wordpress-plugin

稳定标签: 1.0.1

至少需要: 5.9

测试到: 6.0

需要PHP: 8.0

许可: GPL v2 或更高版本

Coding Standards Testing Suite

将外部源和其他数据源导入WordPress。

安装

您可以通过composer安装此包

composer require alleyinteractive/feed-consumer

要求

此插件需要已安装并激活Fieldmanager。还建议使用Alley Logger,但这不是必需的。

使用方法

在WordPress中激活插件,您将看到可用于的新Feeds帖子类型

Screenshot of feed post type

Feed Consumer是一个插件,允许您将外部源和其他数据源导入WordPress。它旨在可扩展,可以用于导入任何可以表示为PHP数组的源的数据。

创建源

要创建源,请转到Feeds帖子类型并点击新建。您将看到一个表单,允许您配置源。源配置包括以下字段

  • 标题:源名称。在管理员中用于识别源。
  • 处理器:要在源上运行的处理器。处理器是定义用于源的提取器、转换器和加载器的类。有关更多信息,请参阅处理器

选定的处理器还将显示处理器的提取器、转换器和加载器的任何设置。

处理器

处理器是Feed Consumer的核心。它们定义了用于源的提取器、转换器和加载器。

开箱即用,Feed Consumer包括以下处理器

  • JSON处理器:从JSON源提取数据到WordPress帖子。
  • RSS处理器:从RSS源提取数据到WordPress帖子。
  • XML处理器:从XML源提取数据到WordPress帖子。

创建处理器

add_filter( 'feed_consumer_processors', function ( array $processors ) {
	$processors[] = My_Plugin\Processor::class;

	return $processors;
} );

提取器

提取器将从远程源提取数据并将其作为传递给转换器的数据进行返回。开箱即用,Feed Consumer包括JSON、XML和RSS转换器等,可用于从各种来源提取数据。您还可以通过实现Feed_Consumer\Contracts\Extractor接口创建自己的提取器。

转换器

转换器将提取的数据转换为可以加载到WordPress中的格式。开箱即用,Feed Consumer包括一个Post_Loader,它将转换数据加载到WordPress中作为帖子。您也可以通过实现Feed_Consumer\Contracts\Transformer接口创建自己的转换器。

加载器

加载器将转换的数据加载到配置的位置。开箱即用,Post_Loader将是最常用的加载器,用于将转换数据加载到WordPress中作为帖子。

您也可以通过实现 Feed_Consumer\Contracts\Loader 接口来创建自己的加载器。

文章加载器

文章加载器将转换后的数据加载到WordPress中。默认情况下,它将通过 wp-block-converter 将内容转换为Gutenberg块。

集成

作者信息管理器

该插件与 Byline Manager 集成,可以根据源项的作者自动设置文章的作者信息。一旦启用了Byline Manager插件,设置字段将出现在源项中,用于设置默认作者信息,并可选择使用源项的作者作为作者信息。

钩子

feed_consumer_run_complete

当源项完成运行时触发。钩子将传递源项ID、加载的数据和处理器类。

add_action( 'feed_consumer_run_complete', function ( int $feed_id, $loaded_data, string $processor ) {
	// Do something.
}, 10, 3 );

feed_consumer_extractor_error

当提取器遇到错误时触发。钩子将传递提取器响应和提取器类。

add_action( 'feed_consumer_extractor_error', function ( $response, \Feed_Consumer\Contracts\Extractor $extractor ) {
	// Do something.
}, 10, 2 );

feed_consumer_pre_feed_fetch

当即将获取源项时触发。

use Mantle\Http_Client\Pending_Request;
use Feed_Consumer\Contracts\Processor;

add_action( 'feed_consumer_pre_feed_fetch', function ( Pending_Request $request, Processor $processor, array $settings ) {
	// Do something.
}, 10, 3 );

feed_consumer_feed_fetch

当已获取源项时触发。

use Mantle\Http_Client\Response;
use Feed_Consumer\Contracts\Processor;

add_action( 'feed_consumer_feed_fetch', function ( Response $response, Processor $processor, array $settings ) {
	// Do something.
}, 10, 3 );

变更日志

有关最近更改的更多信息,请参阅 变更日志

致谢

该项目由 Alley Interactive 主动维护。喜欢所见? 加入我们工作

许可

GNU通用公共许可证(GPL)。有关更多信息,请参阅 许可文件