当wordpress用户被删除时,如何删除分类术语?
当用户被删除时,我需要删除wp_terms->name字段 我的要求是管理员需要将帖子分配给特定的用户,也就是说管理员需要向user1添加帖子,但是user2不应该看到这一点。为此,我创建了一个自定义帖子,并为此添加了分类法。术语是用户用户名。因此,我需要在分类法中将用户的用户名列为术语。当新用户注册时,其用户名也应在wp_terms表中更新,因此我将用户名列为术语。这很好,现在我需要在删除用户时从分类法中删除这个术语 我在这里结巴了。请提出一些解决办法 我所做的是当wordpress用户被删除时,如何删除分类术语?,wordpress,Wordpress,当用户被删除时,我需要删除wp_terms->name字段 我的要求是管理员需要将帖子分配给特定的用户,也就是说管理员需要向user1添加帖子,但是user2不应该看到这一点。为此,我创建了一个自定义帖子,并为此添加了分类法。术语是用户用户名。因此,我需要在分类法中将用户的用户名列为术语。当新用户注册时,其用户名也应在wp_terms表中更新,因此我将用户名列为术语。这很好,现在我需要在删除用户时从分类法中删除这个术语 我在这里结巴了。请提出一些解决办法 我所做的是 add_action( 'd
add_action( 'delete_user', 'yg_user_delete', 10, 1 );
function yg_user_delete( $user_id ) {
$user_info = get_userdata($user_id); $user_name = $user_info->user_login;
print_r($user_info);
wp_delete_term( $user_name, 'user1', array() );
}
您的代码存在一些问题。 主要问题是
wp\u delete\u term
需要term\u id
而不是term\u name
。
您可以使用wp\u get\u object\u terms
为用户获取term\u id
我还没有测试过这段代码,但它应该为您指出正确的方向
function delete_user_terms( $user_id ) {
$taxonomy = 'user1'; // Change this.
$terms = wp_get_object_terms( $user_id, $taxonomy ); // Get the terms for this user.
if ( is_wp_error( $terms ) ) {
return; // Taxonomy does not exist.
}
foreach ( $terms as $term ) {
wp_delete_term( $term->term_id, $taxonomy ); // This requires Term ID. Not term name.
}
}
add_action( 'delete_user', 'delete_user_terms', 10, 1 );
我找到了解决办法
add_action( 'delete_user', 'yg_user_delete', 10, 1 );
function yg_user_delete( $user_id ) {
$user_info = get_userdata($user_id);
$user_name = $user_info->user_login;
wp_delete_term( get_term_by('name', $user_name, 'user1')->term_id, 'user1', array() );
}
你的分类法叫什么?我的分类法名称是user1i我得到了解决方案,我在上面发布了