inspiredminds / contao-wordpressimport
Contao 4扩展包,允许您通过WordPress JSON API从WordPress帖子导入新闻文章。
2.2.0
2023-10-17 13:44 UTC
Requires
- php: >=7.1
- contao/core-bundle: ^4.9 || ^5.0
- doctrine/dbal: ^2.11 || ^3.0
- guzzlehttp/guzzle: ^6.3 || ^7.0
- nyholm/psr7: ^1.2
- paquettg/php-html-parser: ^2.0
- symfony/config: ^4.4 || ^5.0 || ^6.0
- symfony/console: ^4.4 || ^5.0 || ^6.0
- symfony/dependency-injection: ^4.4 || ^5.0 || ^6.0
- symfony/event-dispatcher: ^4.4 || ^5.0 || ^6.0
- symfony/http-kernel: ^4.4 || ^5.0 || ^6.0
- webmozart/path-util: ^2.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.16
Suggests
- codefog/contao-news_categories: Allows to import news categories from WordPress as well.
README
Contao WordPress Import
Contao 4扩展,允许您通过WordPress JSON API从WordPress帖子导入新闻文章。
安装
通过composer安装该扩展包
composer require inspiredminds/contao-wordpressimport
如果您使用的是Contao标准版,您需要在AppKernel.php
中添加以下内容:
new WordPressImportBundle\WordPressImportBundle()
然后执行Contao安装工具以更新数据库。
使用方法
安装完成后,您将在新闻存档中看到新的选项
- WordPress URL:这是您远程WordPress安装的URL,您希望从中导入新闻。此WordPress安装必须提供WP REST API。默认情况下,WordPress 4.7及以上版本包含并激活了该API。
- 定期导入:您可以通过此处激活定期导入,而不是通过控制台命令(见下文)导入WordPress帖子,这将通过Contao的cronjob执行。
- 默认作者:如果不可用其他作者,则每个导入的新闻条目将分配此作者。
- 导入作者:这将为每个新发现的作者生成新的后台用户。现有作者通过其名称识别,因此如果您已安装与WordPress帖子中的作者同名的前台用户,则将使用该前台用户作为作者。注意:自动生成的作者只是裸条目。它们将只设置名称。它们将没有用户名或密码,并且默认情况下将被禁用。
- 导入评论:如果存在Contao评论扩展包,这将导入每个WordPress帖子的评论。注意:每个评论者的电子邮件字段将不会填写,因为显然无法通过公共WP REST API获取。
- 导入文件夹:当WordPress帖子被导入时,其摘要图像和详细内容中的所有图像都将保存到该文件夹。
- 分类:这是一个可选的根分类,所有导入的WordPress帖子分类都将位于此分类下。如果您不指定根分类,导入的分类将导入到根分类。 注意:此选项仅在您安装了
news_categories
扩展时可用。
控制台命令
要导入WordPress帖子到您的Contao安装,您可以使用以下控制台命令
vendor/bin/contao-console wordpressimport
您可以选择定义一次导入的WordPress帖子的数量限制
vendor/bin/contao-console wordpressimport 10
这将每次导入10个WordPress帖子。
在Contao标准版中使用bin/console
。
定期导入
如果您激活了定期导入,WordPress帖子将通过Contao的cronjob每小时导入。
注意:默认情况下,每次cronjob执行只会导入10个项目。导入可能需要很长时间(取决于WordPress文章数量和要下载的图片数量)。这个限制是为了防止cronjob执行长时间占用用户请求(至少直到达到max_execution_time
限制)。您可以在系统设置中更改此限制。
事件
版本2.1.0
引入了WordPressImportBundle\Event\ImportWordPressPostEvent
,在每个WordPress文章被扩展完全处理之后,都会触发该事件。它包含了使用的HTTP客户端实例、WordPress文章对象以及Contao\NewsModel
实例的引用。这使得您能够修改导入的新闻文章。