grrr-amsterdam / simply-static-deploy
轻松将静态WordPress站点部署到AWS S3存储桶
Requires
- php: >=7.1
- aws/aws-sdk-php: ^3.87
- composer/installers: ^1.8
- grrr-amsterdam/garp-functional: ^5.0
- dev-main
- v2.3.0
- v2.2.2
- v2.2.1
- v2.2.0
- v2.1.3
- v2.1.2
- v2.1.1
- v2.1.0
- v2.0.7
- v2.0.6
- v2.0.5
- v2.0.4
- v2.0.3
- v2.0.2
- v2.0.1
- v2.0.0
- v1.0.0
- v0.2.1
- v0.2.0
- v0.1.4
- v0.1.3
- v0.1.2
- v0.1.1
- v0.1.0
- dev-update-readme
- dev-dependabot/composer/guzzlehttp/psr7-2.5.0
- dev-feature/jochem-upgrade-to-latest-simply-static-2.2.9
- dev-feature/jochem-ac-464-add-assets-to-recursive-deploy
- dev-feature/jochem-ac-422-ignore-urls-to-exlude-for-recursive-deploy
- dev-feature/ramiro-multiple-deploy-schedules
- dev-background-deployments
- dev-as-background-process
- dev-settings-enforcer
This package is auto-updated.
Last update: 2024-01-25 13:11:24 UTC
README
此存储库已存档
❗️ GRRR不再维护此插件。
我们建议使用Simply Static插件的Pro计划。当我们开始此插件时,它解决了Simply Static中缺少部署功能的问题。从那时起,该插件已更新,Pro计划正好提供了我们缺少的功能。
GRRR向Simply Static插件贡献了代码和功能,并很高兴看到它的发展。
我们建议您查看,这绝对物有所值。
感谢所有对此插件感兴趣的人!
如果您喜欢使用此插件或在任何方面受到它的启发,也许您想关注我们的博客,在那里我们分享我们的工作和在过程中学到的东西:grrr.tech。
轻松将静态站点部署到AWS S3存储桶
- 利用优秀的Simply Static插件生成静态站点。
- 添加到S3兼容存储(AWS S3、DigitalOcean Spaces等)的部署。
- 添加可选的CloudFront CDN失效步骤。
- 可以通过简单的用户界面或编程方式触发步骤。
- 能够生成和部署单个页面,包括递归选项
- 可使用钩子和动作进行自定义。
由GRRR用❤️开发
生成和部署用户界面
单页/帖子部署用户界面
最低要求
此插件需要
- 最小PHP版本为7.1。
- 安装并激活了Simply Static插件。
安装
此插件需要使用Composer安装。
确保您在composer.json
中配置了正确的安装程序路径。必须在要求包之前完成此操作
"extra": { "installer-paths": { "wp-content/plugins/{$name}/": ["type:wordpress-plugin"] } }
通过Composer安装
$ composer require grrr-amsterdam/simply-static-deploy
如果您项目中尚未使用Composer,请确保包含Composer自动加载器。一个合适的位置是在您的wp-config.php
文件中。
/** Sets up WordPress vars and included files. */ require_once ABSPATH . 'vendor/autoload.php'; # ‹— add this require_once ABSPATH . 'wp-settings.php';
用法
首先在WordPress配置中定义SIMPLY_STATIC_DEPLOY_CONFIG
define('SIMPLY_STATIC_DEPLOY_CONFIG', [ 'aws' => [ 'key' => '...', # AWS access key 'secret' => '...', # AWS secret key 'region' => '...', # AWS region 'bucket' => '...', # S3 bucket 'bucket_acl' => '...', # S3 bucket ACL (optional, defaults to `public-read`) 'distribution' => '...', # CloudFront distribution ID (optional, step is skipped when empty) 'endpoint' => '...', # For usage with providers other than AWS (optional) ], 'url' => '...', # Website url (used for displaying url after deploy is finished) ]);
然后通过管理界面配置Simply Static插件。正确的设置中最重要的是
交付方式
:设置为本地目录
(文件同步到S3,zip无法使用)
其他需要注意的设置
附加URL
:添加插件无法找到的任何URL附加文件和目录
:添加额外的目录(例如前端资产)要排除的URL
:例如上传文件夹(但在运行时卸载上传时)
如果一切配置正确,请在部署
选项卡中点击生成 & 部署
。
文档
功能
单个帖子部署
页面/帖子带有单个部署按钮,因此可以生成和部署单个页面,请参阅单个页面/帖子部署用户界面。
单个递归部署
通过检查递归选项,单个帖子或页面的部署也可以递归地进行,请参见单个页面/帖子部署用户界面中的复选框。当选中“递归”时,包含当前页面/帖子URL的所有页面/帖子也将生成和部署。
可用的过滤器和方法
可用的过滤器可修改传递给插件设置和数据
可用的方法以调用或对其实施操作
过滤器
调整附加文件
修改来自“附加文件和目录”选项的条目。默认情况下,所有路径都通过realpath临时解析为绝对路径,以确保符号链接得到解决。作为参数传递的是选项中未修改的文件数组。
add_filter('simply_static_deploy_additional_files', function (array $files) { # Modify files, and possibly resolve paths with `realpath`. return $files; });
注意:在生成静态网站期间,“additional_files”设置会更新。完成后将恢复。
调整单个部署的附加文件
在执行单个部署时,只有给定的页面/帖子将被生成,包括在Simply Static的“附加文件”设置中给出的文件。您可以通过simply_static_deploy_single_additional_files
过滤器更改这些附加文件进行单个部署。它接受两个参数:第一个是一个文件名数组,第二个是Simply Static选项实例。
调整附加URL
修改“附加URL”选项中的条目。这可以用来添加Simple Static无法找到的页面(不在网站地图中,被密码排除,有noindex
等)。未修改的URL数组作为参数传递。
add_filter('simply_static_deploy_additional_urls', function (array $urls) { # Modify urls, for example by adding missing pages. return $urls; });
注意:在生成静态网站期间,additional_urls
设置会更新。完成时会恢复。
修改递归排除项
此过滤器添加了自定义可排除URL设置的选项。例如,当你想忽略包含递归父URL的URL的排除时,这很有用。
add_filter('simply_static_deploy_recursive_excludable', function ( $excludable, string $staticPageUrl, string $recursiveUrl ) { # Modify excludable url logic, for example ignore excludeable url setting when current page contains the recursiveUrl return $excludable; });
操作
处理错误
从插件调用,并接收一个解释错误的WP_Error
对象。你可以决定如何处理错误,例如使用所选的服务记录错误。
add_action('simply_static_deploy_error', function (\WP_Error $error) { # Handle the error. });
完成静态部署任务
所有部署任务完成后,这将被触发。回调函数中你将得到的第一个也是唯一的参数是Simply Static选项实例。
add_action('simply_static_deploy_complete' , function (\Simply_Static\Options $options) {
// Finished static deploy job.
});
修改生成的文件
当Simply Static完成生成静态网站时调用。这允许你在部署之前修改生成的文件。静态网站目录作为参数传递。
add_action('simply_static_deploy_modify_generated_files', function ( string $directory ) { # Modify generated files, like renaming or moving them. });
安排部署
安排一个部署事件。
参数
- 时间:应是一个简单的字符串时间,它会被自动转换为配置的WordPress时区中的UNIX时间戳。
- 间隔:接受值为
hourly
、twicedaily
和daily
。可以通过cron_schedules扩展。
do_action('simply_static_deploy_schedule', '12:00', 'daily');
注意:确保WP-Cron定期被调用。你可以通过禁用默认的WP-Cron机制并切换到通过专门的cronjob调用它来实现。
要禁用默认的WP–Cron(通常在用户访问页面时调用),请将以下内容添加到你的WordPress配置中
define('DISABLE_WP_CRON', true);
创建一个调用WordPress WP-Cron的cronjob。将其设置为每5分钟是一个好的默认值。例如,通过Linux机器上的crontab -e
执行
*/5 * * * * curl https://example.com/wp/wp-cron.php?doing-cron > /dev/null 2>&1
常见问题
Fatal error: Uncaught Error: Class 'Grrr\SimplyStaticDeploy\SimplyStaticDeploy' not found
检查安装说明,并在你的项目中要求Composer自动加载器。