wordpress - 有条件地根据发布的帖子数量更新角色?
问题描述
我想根据帖子的数量有条件地更新用户角色。
例如,当用户达到 5 个帖子时,订阅者角色会自动升级为编辑者角色。
我怎样才能用下面的代码做到这一点?(此代码仅在用户登录时更改其角色。)
function custom_update_roles( $user_login, $user ) {
if ( ! empty( $user->roles ) && is_array( $user->roles ) ) {
if ( in_array( "translator", $user->roles ) ) {
$user_id = wp_update_user( array( 'ID' => $user->ID, 'role' => 'editor' ) );
if ( is_wp_error( $user_id ) ) {
// Error.
} else {
// Success.
}
} else {
// This user is not a subscriber.
}
}
}
add_action( 'wp_login', 'custom_update_roles', 10, 2 );
解决方案
您应该查看 save_post 挂钩,这是在保存帖子时触发的。
https://codex.wordpress.org/Plugin_API/Action_Reference/save_post
您可以在该挂钩中获得帖子 ID,因此您可以轻松检查帖子是否实际发布(或者是否只是草稿),检查用户的帖子总数,并相应地更改其角色。
推荐阅读
- python - 为什么我在调用我的方法时有两个参数?
- local-storage - 如何从 blazor 的本地存储中获取所有项目?
- elasticsearch - 如何查看弹性搜索中定义的自定义分析器?
- apache-nifi - 从 json 数组 Nifi 中提取特定字段
- java - 使用 JComboBox 取消突出显示 JCalendar 中的日期
- c# - 使用不同的模式通过 Entity Framework Core 将多个数据库连接到 .NET 核心项目
- android - 断开发件人投射设备后,如何让我的 android 电视应用程序继续运行?
- html - ChartJs 工具提示未正确显示
- python - python字符串替换为\u
- php - 具有动态键的嵌套数组