alleyinteractive / expiring-posts
自动过期帖子
v0.2.0
2023-10-28 02:21 UTC
Requires (Dev)
- alleyinteractive/alley-coding-standards: ^1.0
- mantle-framework/testkit: ^0.9
- nunomaduro/collision: ^5.0
- phpunit/phpunit: ^9.3.3
This package is auto-updated.
Last update: 2024-09-04 19:33:29 UTC
README
在一定时间后自动过期帖子。检查帖子的发布和修改日期以确定帖子是否过期,并将对帖子执行操作(草稿/回收站/删除)。
用法
注册帖子类型
过期的帖子可以被设置为草稿或回收站帖子,或者直接删除。
注册帖子类型,一个月后变成草稿
expiring_posts_add_post_type( $post_type, [ 'action' => 'draft', 'expire_after' => MONTH_IN_SECONDS, ], );
注册帖子类型,一周后放入回收站
expiring_posts_add_post_type( $post_type, [ 'action' => 'trash', 'expire_after' => WEEK_IN_SECONDS, ], );
注册帖子类型,一周后删除
expiring_posts_add_post_type( $post_type, [ 'action' => 'delete', 'expire_after' => WEEK_IN_SECONDS, ], );
注册帖子类型,一周后更新
expiring_posts_add_post_type( $post_type, [ 'action' => 'update', 'expire_after' => WEEK_IN_SECONDS, 'update_args' => [ 'meta_input' => [ 'key' => 'value', ], ], ], ); // Or use a callback to define the arguments. The callback // is passed an instance of WP_Post. expiring_posts_add_post_type( $post_type, [ 'action' => 'update', 'expire_after' => WEEK_IN_SECONDS, 'update_args' => fn ( WP_Post $post ) => [ 'post_title' => 'Expired: ' . $post->post_title, ], ], );
默认情况下,帖子类型将在一年后设置为草稿。
钩子
expiring_posts_is_post_expired
应用于检查帖子是否过期的过滤器。
属性
$is_expired
:bool
帖子是否过期。$post
:WP_Post
要检查的帖子。$threshold
:int
检查阈值(Unix时间戳)。$now
:int
当前时间戳。
expiring_posts_cron_interval
执行过期检查的间隔。默认为每小时。
expiring_posts_expired
当帖子过期时触发的动作。
属性
$post_id
:int
帖子ID$post
:WP_Post
帖子对象。
expiring_posts_query_args
应用于查找过期帖子的查询参数的过滤器。
属性
$args
:array
查询参数。$now
:int
当前时间戳。
注销帖子类型
expiring_posts_remove_post_type( $post_type );
测试
composer test
许可
在GPL v2许可下发布。